繁体   English   中英

git:如何配置通过合并而不是通过变基来跟踪分支?

[英]git: how do I configure tracking a branch by merging and not by rebasing?

我想设置一个本地跟踪分支,它将通过合并而不是通过变基来跟踪一个远程分支。
当我执行git pull我想从远程分支合并,而不是重新设置基准。

当我做:

git checkout -b someBranch origin/someBranch

接着

git remote show origin

我懂了:

Local branches configured for 'git pull':
  someBranch rebases onto remote someBranch
Local refs configured for 'git push':
  someBranch pushes to someBranch (local out of date)

如果我做同样的事情

git checkout --track origin/someBranch

是否以某种方式在本地配置?
我该如何改变这种行为?

默认情况下,GIT会在拉取过程中merge 如果您正在重新设置基准,那么似乎您已在某些时候更改了该行为。 或有人帮助您。

引用本文(1)本文(2)本文(3) -都描述了如何做相反的事情:

(从1开始)GIT中有一个配置标志,启用该标志后,将pull的默认行为从merge更改为rebase 检查是否已设置:

# git >= 1.7.9:
git config --global pull.rebase
git config pull.rebase

在较新的GIT客户端中,它可以直观地工作。 如果为true ,则启用它。 只需关闭标志。

但是,在较旧的版本中,它的工作方式有所不同。

# git < 1.7.9:
git config --global branch.autosetuprebase
git config branch.autosetuprebase

# and also
git config branch.<name>.rebase

autosetuprebase设置为always ,git会在每个新分支上自动设置rebase标志。 这意味着不仅您可能不仅要禁用autosetuprebase ,而且还要关闭每个分支已设置的rebase标志。

(来自#2)
如果您想要另一种方式(例如,您拥有旧的GIT客户端和大量分支,并且您确实想编写一个重置标志的脚本),那么另一种选择是为git pull创建一个别名,该别名将添加--no-rebase选项,将迫使它执行合并。

(来自#3)
本文说,每个分支的rebase标志保存在配置文件中。 所以,把后autosetuprebase过,看来你可以快速禁止rebaseing所有或删除一些树枝都rebase从配置文件行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM