2016-03-29 7 views
1

Проблема: в определенном каталоге Git push ограничен очень немногими пользователями (User1). Другие пользователи (User2) не могут изменять их здесь.Как наживать «фиксацию другим пользователем»

Есть ли способ, с помощью которого пользователь2 совершает изменения (git add + Git commit) в этом каталоге, затем он присваивает номер фиксации User1, а последний делает Git push?

Можно ли это сделать?

+0

Есть несколько способов передачи фиксаций. Пользователь2 может отправлять свои коммиты User1, который затем подталкивает их, например. Короче говоря, да. Но я предполагаю, что User2 не должен добавлять + commit в этот «определенный каталог», когда он не может нажать. Было бы лучше, если User2 клонирует свой собственный репозиторий и вносит в него свои изменения. – ikrabbe

ответ

2

Обычно User2 выполняет изменения и фиксирует их. Затем она вносит эти изменения в User1, который подталкивает изменения вверх по течению.

изменения могут быть обеспечены с помощью различных механизмов:

  • User2 может git format-patch их и отправить патчи User1 через E-Mail
  • User2 может использовать git request-pull для того, чтобы отформатировать E-Mail, удерживающие детали для User1, где она могла найти изменения (дополнительный голый репо, прямой доступ к доступу к машине User2, ...)
  • Доменные специфические механизмы (то есть Github Pull Requests, Gitlab Merge Requests, ...)

Ваше требование не является редкостью: много проектов с открытым исходным кодом работают так же, как это: в то время как каждый может внести свой вклад изменения, это до определенных (доверенных) людей, чтобы интегрировать эти изменения в реальном проекте репозиторий.


Редактировать
я приведу некоторые примеры того, как использовать git format-patch или git request-pull здесь

  1. Создать патчи для последней 3 совершает вы сделали:

    git format-patch -3 
    

    Это создаст 3 файла патча, которые вы можете отправить через E-Mail кому-то, что разрешено совершить на вышестоящем репо

  2. Создать патчи для всех фиксаций филиала my-new-feature, так как вы ответвляетесь от мастера:

    git format-patch master..my-new-feature 
    

    Это займет каждый коммит вы делали в my-new-feature и создать патч от него. Опять же, отправьте эти исправления в сопровождающий.

  3. Опубликовать изменения сопровождающему непосредственно с жесткого диска (Windows):

    • Поделитесь рабочий каталог с сопровождающим (дать ей доступ для чтения), скажем, как \\yourmachine\yourworkingcopy.С этого момента, сопровождающий может прочитать содержимое общей папки
    • Откройте вашу консоль и пусть волшебство произойдет:

      git request-pull origin/master file:////yourmachine/yourworkingcopy my-new-feature 
      

      Это выплевывает готовый текст электронной почты на консоль, что вам может принять и отправить вашему сопровождающему.

+0

Спасибо. Можете ли вы привести пример, если это возможно? –

+0

@ Mr.Bordoloi: примеры добавлены! – eckes

 Смежные вопросы

  • Нет связанных вопросов^_^