在合并之前是否需要签出并拉出远程 git 分支?

Do I need to checkout and pull a remote git branch before I merge it in?

我在 develop 中合并到我的 feature\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 的更改,在 develop 之前设置 feature/my-feature 是不好的做法吗?

this question 所述,git pull 只是 git fetch 后跟 git merge

我这样想更容易。

我个人更喜欢获取远程分支而不是拉取它们,因为并不总是需要由 git pull 强制执行的自动合并。

这是我的典型工作流程: 我总是从 origin/develop 分支

开始新功能
git checkout develop
git fetch origin
git reset --hard origin/develop
git checkout -b new_feature_branch

这确保我在最新的原始开发分支上。

为什么比 pull 好?因为它可以防止在获取时合并并有助于维护干净的 git 历史记录。

您可以直接 pull 您的远程分支 develop,但您可能需要提及远程存储库(在您的情况下,origin):

git checkout feature
git pull origin develop

这将导致合并提交,其中消息提到 origin/develop

不提远程仓库,恐怕 pull 的合并部分会合并您的本地分支 develop,而不是获取的分支。但一定要试试!