在合并远程git分支之前,我需要先进行checkout和pull操作吗?

5

我合并developfeature\my-feature分支的正常流程如下:

name@home ~/myRepo (feature/my-feature)
$ git checkout develop
$ git pull
$ git checkout feature/my-feature
$ git merge develop
$ git mergetool

这个能被替换成:

name@home ~/myRepo (feature/my-feature)
$ git fetch
$ git merge origin/develop
$ git mergetool

fetch命令是否可以获取关于远程origin/develop的更改信息,使我可以从origin/develop而不是develop进行合并操作?

在具有来自远程origin/develop的更改的情况下,将feature/my-feature提前于develop是否存在不良实践?


我可以直接在feature/my-feature中执行 git pull develop 吗? - StuperUser
2个回答

4

您可以直接拉取您的远程分支develop,但是您可能需要提及远程仓库(在您的情况下,origin):

git checkout feature
git pull origin develop

这将导致一个合并提交,在该提交信息中提到了origin/develop
如果不提及远程仓库,我担心pull的合并部分会合并您本地的develop分支,而不是获取的分支。但是请尝试!

1
此问题所述,git pull只是git fetch后跟git merge
对我来说,以这种方式思考更容易。
我个人更喜欢获取远程分支而不是拉取它们,因为强制执行的自动合并不总是必要的。
以下是我的典型工作流程:
我总是从origin/develop分支开始新功能。
git checkout develop
git fetch origin
git reset --hard origin/develop
git checkout -b new_feature_branch

这确保我处于最新的源开发分支。 为什么它比pull更好?因为它防止在获取时合并,并有助于维护干净的git历史记录。

当您的更改被拉入远程“develop”时,如何将最新内容合并到您的功能分支中以避免冲突?这似乎需要更多命令,而不是更少。 - StuperUser
1
我将在一分钟内在我的答案中添加我的典型工作流程。 - borisano
在您的典型工作流程中,您如何确保new_feature_branch在合并回develop之前与develop保持最新状态?您应该经常将develop合并到new_feature_branch中,以便您可以频繁地进行合并。 - StuperUser
我通常只在拉取请求之前合并。为什么我现在要经常进行小的合并呢? - borisano
1
这取决于团队规模、上游分支的提交和变动数量以及文件冲突情况。如果你需要进行复杂的合并,那么合并的规模越小,合并时间距离其他贡献者提交的时间越近,则在大家的脑海中就会更加清晰,合并也会更容易。例如,在周五午饭后、9天前的某个工作日完成的复杂合并,而当时的贡献者已经休假了,并且可能在上一周就可以合并,这是不太理想的。 - StuperUser
但是,如果您正在与许多更改的大团队一起工作,那么您仍然必须经常合并。我想我们正在谈论初始分支创建。 - borisano

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接