$ git checkout --track origin/serverfix
Branch serverfix set up to track remote branch refs/remotes/origin/serverfix.
Switched to a new branch "serverfix"
-u, --set-upstream
For every branch that is up to date or successfully pushed, add
upstream (tracking) reference, used by argument-less git-pull(1) and
other commands. For more information, see branch.<name>.merge in
git-config(1).
假设当前分支为<branch_name>:
$ git push -u
Branch <branch_name> set up to track remote branch <branch_name> from origin.
Everything up-to-date
8条答案
按热度按时间oxf4rvwz1#
我也是一个只输入
git pull
并获得所有魔力的粉丝。您有两个选项:
1)
git config --global branch.autoSetupMerge always
这将确保无论您 checkout 一个远程分支,还是创建一个新分支;跟踪信息将由git自动处理。然后您将能够
请注意,为了
push
没有更多的关键字,你需要设置推送选项。我已经设置为matching
,但每个人都有自己的偏好。(git config --global push.default matching
)autosetupmerge
默认值为true
。当设置为true时,git会在您 checkout 远程已有分支时执行跟踪。例如,如果您执行git checkout <branch>
,git会处理跟踪信息,以便您可以在该分支上执行git pull
。* 然而,* 它不会在您使用-b
选项创建的分支上执行此操作。将autosetupmerge
设置为always
可确保git始终处理跟踪信息。**2)**检出新分支时,您需要专门设置要从原点提取的分支(也称为跟踪)
我发现当分支是暂时性的时,这个选项就不那么有用了。如果你很少创建新分支,你应该使用这个选项。但是,如果你像我一样,只有 master 分支是持久的,每个特性都有自己的全新分支,那么我发现选项1更有用。
注意,你不需要把git的配置设为
--global
,你可以直接在这里写上--local
,并把这个设置只针对那个仓库。2w2cym1i2#
这对我很有效:
完成此操作后,我可以使用以下语法:
2ic8powd3#
您可以创建跟踪分支。从Git Book(http://git-scm.com/book/en/Git-Branching-Remote-Branches):
当你克隆一个仓库的时候,它通常会自动创建一个
master
分支来跟踪origin/master
,这就是为什么git push
和git pull
不需要其他参数就可以工作的原因。如果您愿意,可以设置其他跟踪分支-不跟踪origin
上的分支,也不跟踪master
分支。最简单的例子就是你刚刚看到的例子,运行git checkout -b [branch] [remotename]/[branch]
。如果你有Git 1.6.2或更高版本,你也可以使用--track
的简写:0dxa2lsx4#
如果将
git push
配置为自动计算远程分支名称,则可以传递-u
,它也将自动设置跟踪分支。要设置git push使用同名的远程分支:
git help push
中-u
选项的说明:假设当前分支为
<branch_name>
:egmofgnx5#
我需要将我的repos与master分支同步,所以我使用了一个简单的bash脚本,它获取更改并将其重定基到master分支:
ijxebb2r6#
我也很喜欢使用简单的短命令来减少人为错误,遗憾的是git pull没有一个可配置的默认选项。不幸的是,最上面的答案似乎不适用于现有的 checkout 分支(如果你在拉取一堆repo后才搜索这个答案,这会很痛苦),迫使你对每个repo,对每个现有分支运行
git branch --set-upstream-to=origin/<branch> <branch>
。为了减少输入的字符数,你可以使用一个git别名来实现对所有分支的速记拉取。下面是一个为
git pu
创建别名的例子:现在,每次键入
git pu
时,它都会自动展开为full pull命令。shell扩展非常强大,如果您更喜欢使用
git pull
,也可以创建别名来快速更新远程分支跟踪,例如git up
:fafcakar7#
同样,如果你要进入你的
.gitconfig
文件并做一个小的修改,你可以设置它自动假设你想从任何项目的当前分支推/拉。所以在你想要的任何编辑器中打开.gitconfig
。找到[push]选项,设置它为default=simple
,就像下面一样。就像这样。把pull也改为simple。现在可能两者都设置为current。本质上它和我之前发布的选项完全一样:
但我发现这是一个更好的选择。所以你可以使用这同一行,但将
current
改为simple
。anhgbhbe8#
此命令应该配置git在终端/iTerm中运行时拉到当前分支。
只需将“pull”改为“push”,就能获得与“git push”相同的效果。