我们的工作分支如下。
master
dev
person A
person B
我们都在各自的分支上工作,即人A
或人B
(在同一项目中工作)。当人A
完成工作后,他将提交更改到他的分支,并创建一个拉取请求来合并更改到dev
,其他人B
查看并批准。经过批准后,更改将保存在dev
中。
B
如何从dev
获取A
最新的更改并应用到他的人B
分支上。我们使用GitHub Desktop进行所有Git推送/拉取操作,但也乐意学习命令。谢谢。我们的工作分支如下。
master
dev
person A
person B
我们都在各自的分支上工作,即人A
或人B
(在同一项目中工作)。当人A
完成工作后,他将提交更改到他的分支,并创建一个拉取请求来合并更改到dev
,其他人B
查看并批准。经过批准后,更改将保存在dev
中。
B
如何从dev
获取A
最新的更改并应用到他的人B
分支上。我们使用GitHub Desktop进行所有Git推送/拉取操作,但也乐意学习命令。谢谢。最好的做法是在人员 A 将更改推送到 dev
后尽快让人员 B 将这些更改合并到他们的分支 b
中。这样,人员 B 可以在最新的代码上工作,并且将来将其合并到 dev
上会更加容易。
feature_branch
(git 状态显示为 clean
)git checkout dev
git pull
- 这会将更改从计算机 b
下载到本地,并将这些更改合并到计算机 b
中当前已检出的本地分支中(在这种情况下是分支 dev
)。此操作通常应该是“快进”操作(因此没有合并冲突)git checkout feature_branch
git merge dev
- 这将从 b
的本地 dev
合并更改到 feature_branch
中。git mergetool
- 解决冲突git commit
- 提交您的合并使用此选项,计算机 b
的本地 dev
和 feature_branch
都具有最新的更改。
feature_branch
(git 状态显示为 clean
)git fetch origin dev
- 这个命令会下载最新的 dev
分支代码,但不会将其合并到本地的 dev
分支。git merge origin/dev
- 这个命令会将从远程仓库下载的 dev
分支代码合并到 feature_branch
分支中。在这种情况下,b
的本地 feature_branch
将包含来自远程仓库最新的 dev
分支的更改,并且他们的本地 dev
不会包含这些更改。这是可以接受的,因为b
并没有在 dev
上工作,而是在 feature_branch
上工作。
我喜欢第二个选项,因为我不需要切换到 dev
分支,但两种选项都是正确的。
dev
分支被合并到feature_branch
中,而合并提交中没有任何已提交的更改。我之所以注意到这一点,是因为使用选项1时出现了多个合并冲突,但使用选项2时没有出现。我做错了什么@tymtam?非常感谢 :) - Flo这些是我用命令行界面执行的步骤。
您也可以使用 GitHub 桌面版来跟随这些步骤。
git pull origin dev
是通常的方法,假设A
已将他的更改推送到上游。 - paxdiablo