如果没有冲突,有没有办法让推送自动接受并合并?
我知道这是一个不好的做法,但我有一个特殊情况,即外围 git 存储库由机器人更新
如果没有冲突,有没有办法让推送自动接受并合并?
推理流程应该颠倒过来——只有在尝试合并之后才能知道不存在冲突。当本地和远程树分歧时,合并是必要的 - 并且仅在远程检测到分歧after您尝试推送,即在将本地树带到远程之后。在这种情况下,远程端的 git 通常会拒绝推送以让您解决差异 - 您最适合在客户端而不是远程端执行此操作。
如果您确定不存在冲突,则可以信任git pull
- 它在默认模式下与 FETCH_HEAD 合并。例如,
git pull --no-edit
git push
The --no-edit
不鼓励使用该选项,但可以通过接受默认合并消息来避免将您转入编辑器。您可以将这两个命令别名为一个命令,如果合并没有成功,则该命令会失败,
git config alias.merge-n-push '!f() { git pull --no-edit && git push; }; f'
我不能保证虽然我会进行拉取和合并,但远程上不会发生任何变化
当然不能,git 是一个分布式版本控制系统,这种竞争是固有的,甚至是期望的。一种以某种方式lock当你来回决定合并什么以及如何合并时,遥控器将不是 git 惯用的。你需要简单地推、拉、推,直到成功。实际上,这很少是一个问题,因为在最坏的情况下,您可以要求您的同事在完成复杂的合并/推送时暂停。
不过,您可以通过检查遥控器来稍微缓解这种情况:如何在不使用 fetch 的情况下知道本地仓库与远程仓库不同? https://stackoverflow.com/a/21402352/3099074
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)