使用我们当前的设置,您在进行 pull 时始终必须输入分支名称(即:git pull origin feature-branch
”。我已经犯了从一个分支 pull 入的错误另一个,不小心 merge 了两个非常不同的版本的两个分支。我想通过配置 Git 来避免这种情况,这样只需键入 git pull
就会 pull 出你所在的当前分支。
我该怎么做?
最佳答案
我也喜欢只输入 git pull
并获得所有的魔法。
你有两个选择:
1) git config --global branch.autoSetupMerge always
这将确保无论您 checkout 远程分支还是创建新分支;跟踪信息将由 git 自动处理。然后你就可以
git clone <some_repo>
git checkout -b <new_branch>
git push
git pull
注意为了push
没有更多关键字,您还需要设置推送选项。我已将其设置为 matching
,但每个人对此都有自己的偏好。 ( git config --global push.default matching
)
更多信息: autosetupmerge
默认为 true
.当设置为 true 时,这允许 git 在您 check out 远程已经存在的分支时执行跟踪。例如,如果您执行 git checkout <branch>
,git 将处理跟踪信息,以便您可以执行 git pull
在那个分支上。 但是,它不会在您使用 -b
创建的分支上执行此操作选项。设置autosetupmerge
至 always
确保 git 始终处理跟踪信息。
2) 当 check out 一个新分支时,您需要专门设置该分支从原点 pull (又名跟踪)
git checkout -b <branch> --track <remote>/<branch>
我发现当分支是 transient 时这不太有用。如果你很少创建新分支,你应该使用它。但是,如果您像我一样,只有 master 分支是持久的,并且每个功能都有自己全新的分支,那么我发现选项 1 更有用。
注意,你不需要做git配置--global
.你可以简单地写 --local
在那里,并且只有特定于该存储库的设置。
关于git - 如何配置 Git 在使用 "git pull"时自动从当前分支 pull ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19279937/