我的意思是:
在梦幻世界中,这个应该只用一个命令来完成,比如“git snap”,它应该管理所有步骤;当然,当出现问题(一个无法自动解决的冲突)时,它会给我一个错误信息,我会开始这么做。 (是的,我可以做到,我每天都在使用git,只是想让它毫不费力。)
那么,实现这一目标的最简单的方法是什么?一批,也许?一系列git命令,如stash + pull + stashpop + commit,或commit + pull + push?有没有一种自动的方法可以做到这一点,在乐观主义的情况下没有发生不良冲突?
我现在正在使用带有3个不同客户端的git(SourceTree,GitExtensions,TortoiseGIT),但这些都不会让我的生活那么简单。我不想一直手动藏匿,我对详细消息不感兴趣,只是一个命令,它或者全部完成或者因为某个原因而失败。
有办法吗?
答案 0 :(得分:1)
我能想到的唯一选择是bash函数或脚本来串行运行命令。我的工作流程看起来像这样(因为你不关心提交消息):
git commit -a --allow-empty-message -m ''
git pull --rebase
git push
对我来说,这可能会占据我工作流程的80%(SWAG)。 git pull --rebase
是可能失败的唯一步骤。如果存在任何冲突,它将失败,但让您处于纠正状态,然后使用git rebase --continue
继续变基。然后,您可以git push
完成工作流程。
您也可以查看GitHub自己的Git客户端,它非常简单并且集成得很好。但是,它不会为您提供您正在搜索的“单击操作”。 http://www.w3schools.com/html/html_form_attributes.asp
答案 1 :(得分:1)
这是一个命令:
git commit -a -m "Commit" && git pull --rebase && git push origin master
您还可以解决冲突。这将变得更难。
请注意,您没有按照预期的方式使用git。
Git不应仅用于共享代码或备份您的工作。
答案 2 :(得分:1)
非常好的问题!我的生活很简单,因为我通过PHPStorm使用git。我建议你试一试。它自动处理这些,并且它也有代码完成:P
答案 3 :(得分:0)
这可能是使用Makefile执行此操作的好方法。
答案 4 :(得分:0)
经过几个月尝试不同的客户后,我发现 GitExtensions 是最轻松的同步。它有一个" auto stash"当你执行拉动时选项 - 自动保存所有更改,然后从服务器获取新内容,然后将自己的更改合并到它们上(隐藏弹出窗口),所有这一切都没有触摸它,如果你想要的话。它还为您提供了一种手动解决冲突的方法(尽管您需要比较/合并工具,例如TortoiseMerge)。
TLDR:GitExt似乎是我祈祷的答案。