Как получить последние коммиты из удаленного репозитория? - PullRequest
0 голосов
/ 19 апреля 2019

В нашей команде только человек B может вносить изменения в наш удаленный репозиторий.Другие разработчики, такие как человек А, создают форк этого удаленного хранилища.Человек B должен позаботиться о том, чтобы изменения человека A закончились в удаленном репозитории.

Предположим, что человек A сделал коммит на его разветвленном репо.Человек B затем клонирует репо человека A.Человек А делает некоторые изменения в своем репо.Затем человек B хочет получить эти изменения в своем репо, которые он ранее клонировал, от человека A. Это позволяет человеку B перенести изменения человека A в удаленное репо.Может быть, человек А должен сделать еще несколько изменений.Человек B должен иметь возможность извлекать эти изменения и передавать их в удаленный репозиторий.

Мы не уверены, как этого добиться с помощью git.Любые советы?

Это команды, которые пытается выполнить человек B:

git clone reponame-from-person-a.git
cd reponame-from-person-a
git checkout branch-from-person-a
git commit --amend --author="Person B <person.b@company.com>"
git remote remove origin
git remote add origin reponame-from-person-b.git
git push --set-upstream origin branch-from-person-a
git push -f

Затем, когда человек A сделал еще какие-то изменения, человек B пытается это:

git pull

Мы ожидаем, что последние изменения от человека А теперь извлечены.К сожалению, это не так.

Ответы [ 3 ]

1 голос
/ 19 апреля 2019

Похоже на регулярный поток, которому следует большинство организаций.Следующий шаг поможет вам добиться этого:

  • Персона А фиксирует изменения и открывает запрос на извлечение, в котором указывается, из какой ветви разветвленного репо он должен слиться с какой веткой удаленного репо (репо Персона Б)
  • Лицо Б просматривает изменения и объединяет их.

Для получения более подробной информации см. это .

0 голосов
/ 20 апреля 2019

Поскольку git является распределенной VCS, все это клонирование не требуется после того, как все получили копию.

Например:

Origin:
      master
        |
A---B---C

Персона A разветвляется и создает feature ветвь:

Person A:
  origin/master
        |
A---B---C---D---E
                |
             feature

, и пусть Персона A отправит ее в Origin:

Origin:
      master
        |
A---B---C---D---E
                |
             feature

feature будет на удаленном сервере, ноизменения не в origin/master, так как вы определили, что только человеку B разрешено вносить изменения в master.Существование feature на удаленном сервере не влияет на origin/master на всех.

1022 * На данный момент, человек B, который действительно имеет право включить feature в master, может Fetchчтобы получить обновленную «копию всего», после чего он может выполнить слияние, создав коммит слияния F из master и feature:
Person B:
  origin/master
        |
A---B---C-------F
         \     /
          D---E
              |
           feature

Обратите внимание, что изменения все еще не включеныorigin/master.Пока все изменения происходят только в ветке master локального репо Лица B:

Person B:
origin/master  master
        |       |
A---B---C-------F
         \     /
          D---E
              |
           feature

Изменения все еще не включены origin/master.(Я разбиваю это шаг за шагом).Только после того, как Лицо B отправит master в Происхождение, оно будет обновлено в Происхождении, что разрешено делать только Лицу В:

Origin:
              master
                |
A---B---C-------F
         \     /
          D---E
              |
           feature

На протяжении всего этого процесса отслеживается авторство и приверженность.Любой, кто выбирает хранилище в этот момент, увидит, что feature, написанный Лицом А, был объединен и включен в master Лицом В

0 голосов
/ 19 апреля 2019

Не уверен в том, как работает ваша команда, но никогда раньше не видел такой рабочий процесс. Человек B не должен клонировать репо человека A. Я рекомендую вам проверить эту простую статью!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...