有没有一种方法可以设置主机Git存储库,使其(本地)克隆的任何git pull
默认使用--rebase
?通过搜索Stack Overflow,我了解到了branch.autosetuprebase
,但它需要针对每个克隆进行单独配置。
我的项目流程是这样设置的:在对develop
分支执行merge
操作之前,先对其执行pull
操作。这个pull
几乎总是使用--rebase
,所以我正在尝试弄清楚这是否可以是默认的。
发布于 2012-12-20 22:45:12
现在有3个不同级别的默认拉入行为的配置。从最一般的到最细粒度的,它们是:
1. pull.rebase
将其设置为true
意味着git pull
始终等同于git pull --rebase
(除非branch.<branchname>.rebase
显式设置为false
)。这也可以按存储库或全局设置。
2. branch.autosetuprebase
将其设置为always
意味着,无论何时创建跟踪分支,都会为其创建一个配置条目,如下所示。对于更细粒度的控制,还可以将其设置为never
、local
或remote
,并且可以按存储库或全局设置。有关更多详细信息,请参阅git config --help
。
3. branch.<branchname>.rebase
将其设置为true
意味着,除非显式使用git pull --no-rebase
,否则该特定分支将始终通过rebasing从其上游拉出。
结论
因此,虽然您不能更改存储库所有未来克隆的默认行为,但您可以通过git config --global pull.rebase true
更改所有当前用户(现有的和未来的)存储库的默认行为。
发布于 2013-07-13 00:38:47
怎么样
git config --global pull.rebase true
这将告诉git始终使用rebase进行拉动。
发布于 2014-10-02 20:53:47
答案是否定的。
没有一种方法可以设置一个远程存储库,这样每个克隆它的人都会更改git pull
的默认行为。
但是,您可以设置一个服务器端钩子来检查是否没有人推送合并提交(也许是something like this)。
还有一些您可能感兴趣的配置选项。所有从远程存储库克隆的开发人员都必须手动设置它。
1.选项branch.<name>.rebase
您可以将本地分支配置为始终使用--rebase
,如下所示,将<name>
替换为分支名称:
git config branch.<name>.rebase true
在master
上运行后,.git/config
中的master
部分如下所示:
[branch "master"]
remote = origin
merge = refs/heads/master
rebase = true
2.选项branch.autosetuprebase
为每个Git分支运行前面的config命令可能很麻烦,因此您可以配置Git为每个新分支自动设置它:
git config branch.autosetuprebase always
(您还可以指定never
、remote
和local
,有关详细信息,请参阅man git-config
。)
如果不使用--global
选项,则会将配置保存到.git/config
,并且只会影响当前存储库。使用--global
,配置将保存到~/.gitconfig
,并且每个未配置的存储库都会受到影响。
此选项不会影响已存在的分支。
3.选项pull.rebase
git config pull.rebase true
(您还可以为其提供--global
选项。)
如果此选项为true,则运行git pull
等同于git pull --rebase
,除非已将branch.<name>.rebase
设置为false
。
https://stackoverflow.com/questions/13846300
复制相似问题