Bra*_*ham 35 git branch config
使用我们当前的设置,你总是必须输入分支名称(即:git pull origin feature-branch"当拉动时.我已经犯了从一个分支拉到另一个分支的错误,意外地将两个分支与两个非常不同的版本合并.我想要通过配置Git来避免这种情况,这样只需键入git pull就可以拉出当前的分支.
我该怎么做呢?
bat*_*ilc 25
我也是一个打字git pull而且获得所有魔力的粉丝.
你有2个选择:
1) git config --global branch.autoSetupMerge always
这将确保您是否结帐远程分支或创建新分支; 跟踪信息将由git自动处理.然后你就可以了
git clone <some_repo>
git checkout -b <new_branch>
git push
git pull
Run Code Online (Sandbox Code Playgroud)
请注意,为了push不再使用更多关键字,您还需要设置推送选项.我已经设定了matching,但每个人都有他们的偏好.(git config --global push.default matching)
更多信息: autosetupmerge默认为true.当设置为true时,这允许git在您签出远程的现有分支时执行跟踪.例如,如果你这样做git checkout <branch>,git将处理跟踪信息,以便你可以git pull在该分支上执行.但是,它不会在您使用-b选项创建的分支上执行此操作.设置autosetupmerge以always确保git始终处理跟踪信息.
2)签出新分支时,需要专门设置从原点拉出的分支(也称跟踪)
git checkout -b <branch> --track <remote>/<branch>
Run Code Online (Sandbox Code Playgroud)
当分支是瞬态时,我发现这不太有用.如果您很少创建新分支,则应该使用此分支.但是,如果你像我一样,只有主分支是持久的,每个功能都有自己的全新分支,那么我发现选项1更有用.
请注意,您不需要进行git配置--global.您可以简单地--local在那里写,并且只对该存储库具有特定的设置.
Kar*_*ran 12
您可以创建跟踪分支.来自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速记:Run Code Online (Sandbox Code Playgroud)$ git checkout --track origin/serverfix Branch serverfix set up to track remote branch refs/remotes/origin/serverfix. Switched to a new branch "serverfix"
Sam*_*uel 10
这对我有用:
git branch --set-upstream-to=origin/branch_name branch_name
Run Code Online (Sandbox Code Playgroud)
执行此操作后,我可以使用以下语法:
git checkout branch_name
git pull --rebase
git push
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您已git push配置为自动计算远程分支名称,则可以通过-u,它还将自动设置跟踪分支.
要设置git push以使用具有相同名称的远程分支:
git config --global push.default current`
Run Code Online (Sandbox Code Playgroud)
-u来自的选项说明git help push:
-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).
Run Code Online (Sandbox Code Playgroud)
假设您当前的分支是<branch_name>:
$ git push -u
Branch <branch_name> set up to track remote branch <branch_name> from origin.
Everything up-to-date
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27435 次 |
| 最近记录: |