在合并之前是否需要签出并拉出远程 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
,而不是获取的分支。但一定要试试!
我在 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
,而不是获取的分支。但一定要试试!