有没有办法设置主机Git存储库,以便默认情况下git pull
从其(本地)克隆完成任何操作--rebase
?通过搜索Stack Overflow,我了解到了branch.autosetuprebase
,但需要单独为每个克隆配置它.
我的项目流程设置为pull
在develop
分支merge
功能分支之前进行分支.这pull
几乎总是使用--rebase
,所以我试图弄清楚这是否是默认值.
Par*_*tes 175
现在有3种不同级别的配置用于默认拉动行为.从最普通到最细粒度,他们是:
pull.rebase
将其设置为true
意味着git pull
总是等同于git pull --rebase
(除非branch.<branchname>.rebase
明确设置为false
).这也可以按存储库或全局设置.
branch.autosetuprebase
将其设置为always
意味着无论何时创建跟踪分支,都将为其创建如下所示的配置条目.对于更精细的控制,这也可以设置为never
,local
或者remote
可以根据存储库或全局设置.有关git config --help
详细信息,请参阅
branch.<branchname>.rebase
设置此值true
意味着该特定分支将始终通过rebase从其上游拉出,除非git pull --no-rebase
明确使用.
因此,虽然您无法更改存储库的所有未来克隆的默认行为,但您可以通过更改当前所有用户(现有和将来)存储库的默认行为git config --global pull.rebase true
.
mac*_*ntu 117
怎么样
git config --global --bool pull.rebase true
Run Code Online (Sandbox Code Playgroud)
这将告诉git始终使用rebase.
Fli*_*imm 34
没有办法设置远程存储库,以便克隆它的每个人都具有git pull
更改的默认行为.
你可以,但是,建立一个服务器端的挂钩来,没有人推动合并的提交(这样的事情,也许).
还有一些您可能感兴趣的配置选项.从远程存储库克隆的所有开发人员都必须手动设置它们.
branch.<name>.rebase
您可以将本地分支配置为始终使用--rebase
,例如,<name>
使用分支名称替换:
git config branch.<name>.rebase true
Run Code Online (Sandbox Code Playgroud)
运行此操作后master
,该master
部分.git/config
看起来像这样:
[branch "master"]
remote = origin
merge = refs/heads/master
rebase = true
Run Code Online (Sandbox Code Playgroud)
branch.autosetuprebase
为每个Git分支运行上一个config命令可能很麻烦,因此您可以配置Git为每个新分支自动设置它:
git config branch.autosetuprebase always
Run Code Online (Sandbox Code Playgroud)
(您也可以指定never
,, remote
和local
查看man git-config
详细信息.)
如果没有该--global
选项,则会将配置保存到.git/config
,并且仅影响当前存储库.使用--global
,配置将保存到~/.gitconfig
,并且每个未配置的存储库都会受到影响.
此选项不会影响现有分支.
pull.rebase
git config --bool pull.rebase true
Run Code Online (Sandbox Code Playgroud)
(您也可以--global
选择它.)
如果此选项为true,则运行git pull
等效于git pull --rebase
,除非branch.<name>.rebase
已设置为false
.
目前无法为存储库设置默认策略。
如果你自己想要它并且你至少使用 git 1.7.9,你可以全局设置配置pull.rebase
如下:
git config --global pull.rebase true
Run Code Online (Sandbox Code Playgroud)
但你必须在每台机器上做。一种选择可能是使用该选项配置默认用户主模板/框架。但是,用户可能会更改该选项。
如果您不想合并,您可以定义一个服务器端挂钩来拒绝合并推送。
供您参考,他是pull.rebase 的源文档:
如果为 true,则在获取的分支顶部重新设置分支,而不是在运行“git pull”时合并来自默认远程的默认分支。请参阅“branch..rebase”以在每个分支的基础上进行设置。
合并时,将 --rebase-merges 选项传递给 git rebase,以便本地合并提交包含在 rebase 中( 有关详细信息,请参阅git-rebase )。
保留时,还将 --preserve-merges 传递给 git rebase,以便本地提交的合并提交不会因运行 git pull 而被压平。
当值为交互时,变基以交互模式运行。
注意:这是一个可能存在危险的操作;除非您了解其含义,否则请勿使用它(有关详细信息,请参阅git-rebase )。
归档时间: |
|
查看次数: |
50619 次 |
最近记录: |