我的开发商店有一个首选的 git 流程,如下所示:
- 检出问题分支(
issue9
)。 - 解决问题(
serve over port 80
)。 - 犯罪 (
git commit
...)。 - 将问题分支合并到本地功能分支(
cal
)。 将本地功能分支推送至
origin
。- 如果可能的话,所有合并都应快进。
最后这个限制让我抓狂不已——实际上,我可以:
- 将问题提交合并到本地功能分支。
- 因此,由于远程更改,git 拒绝推送到原点。
- 将远程更改拉至本地功能分支。
- Git 自动生成单独的合并提交。
或者
- 将远程更改拉至本地功能分支。
- Git 自动生成单独的合并提交。
是否有可以在全局/本地 git 配置中调整的设置来实现此行为?当我尝试执行此操作时,我最终弄乱了 git,并且不得不运行四个或五个 git 命令来清理它。
我只是想emacs && git commit && git checkout cal && git merge issue9 && git push origin cal
,你知道吗?
答案1
对于一次性拉动,您可以使用git pull --rebase
:
$ git commit
$ git checkout cal
$ git merge issue9
$ git pull --rebase
$ git push origin cal
要将 git 配置为总是以这种方式运行git pull
,请使您的~/.gitconfig
外观如下所示:
[push]
default = matching
[branch]
autosetuprebase = always
[color]
status = auto
[merge]
ff = true