git - 如何配置 Git 在使用 "git pull"时自动从当前分支 pull ?

标签 git branch config

使用我们当前的设置,您在进行 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 创建的分支上执行此操作选项。设置autosetupmergealways确保 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/

相关文章:

git - 如何区分本地未提交的更改和来源

Git:如何在 rebase 期间修复提交

git - "gerrit: replicate: not found"即使在安装复制插件之后

git - 我可以为本地分支定义多个上游分支吗?

git - 在 Jenkins Pipeline/Jenkinsfile 中获取 git 分支名称

git 分支删除 - HOOK

codeigniter - 动态更新配置数据codeigniter

c# - 针对多个值的自定义 .NET ConfigurationSection 验证

docker - 跨容器重用配置

Git 在共享驱动器中创建 ssh key ?