更好的git-add-p?
有时我在没有安装X窗口的系统上工作,不能使用GitGUI 除了git add-p,还有哪些现有的控制台替代方案 我几乎喜欢它所做的一切(实际上比Git GUI更喜欢),但我讨厌它不允许我查看整个图片并选择我想要查看的块的顺序。对我来说,这是GitGUI相对于GitAdd-p的唯一实际优势,但它是相当关键的一个 我尝试了更好的git-add-p?,git,version-control,Git,Version Control,有时我在没有安装X窗口的系统上工作,不能使用GitGUI 除了git add-p,还有哪些现有的控制台替代方案 我几乎喜欢它所做的一切(实际上比Git GUI更喜欢),但我讨厌它不允许我查看整个图片并选择我想要查看的块的顺序。对我来说,这是GitGUI相对于GitAdd-p的唯一实际优势,但它是相当关键的一个 我尝试了tig,但我不喜欢它提供的用户体验 有什么建议吗?Vim有一个“逃犯”插件 编辑:这本书非常好,我推荐它。我想补充一点提示,通常不需要用手写方式键入:diffget和:diffpu
tig
,但我不喜欢它提供的用户体验
有什么建议吗?Vim有一个“逃犯”插件 编辑:这本书非常好,我推荐它。我想补充一点提示,通常不需要用手写方式键入
:diffget
和:diffput
,因为您可以通过按do和dp在正常/可视模式下直接键入
此功能的最佳开始命令似乎是:Gstatus
Vim是一个终端编辑器(碰巧也有一个gui端口) 逃犯插件可以让你简单地编辑文件的索引和工作树版本,并允许你进行diffput/diffget,直到你满意为止。Vim的diff模式非常复杂,比git add--patch更灵活/直观
- 卷轴装订
- 同时突出显示语法和行内(字级)差异突出显示
- 自动差异折叠(不变区域)
:他是个逃犯
:
在工作树中编辑文件并进行一些更改。使用|:Gdiff |打开
索引版本。在不同的大块头上使用| do |和| dp |将文件带入
同步,或使用|:Gread |拉入所有更改。将索引版本写入
暂存文件
一个简单的
git diff
“查看全貌”,然后
git add -i
5
要选择要提交的第一个文件,请先准备好这些大块头,然后对下一个文件重复这个过程?如果我和你处于相同的情况下(一组大块头,其中一些大块头比其他人“更重要”),我会用易于区分的提交消息将较小的帅哥提交到他们自己的提交中,只留下那些“更重要”的帅哥,这样他们就不会妨碍diff或git add-I
对于“特权较低”的大块头来说,有了易于识别的提交消息,以后应该可以很容易地处理它们。这里的“5”有什么意义吗?我希望能够同时完成所有这一切。通常,我有几个未提交的帅哥系列,它们位于几个不同的文件中(即每次提交一个系列)。每次运行
git add-p
循环都相当乏味。另外,git add-i
的使用与在git add-p
调用中使用实际的文件名相同,没有太大的改进。@sehe:这是一个文件列表菜单项编号。@Alexander Gladysh:我不确定你的意思-我想通过git add-i
给你提供更多的概述(例如,看到代码行发生了变化)。是的,您必须为每一次不同的/下一次提交调用git add-i
和git commit
,但git就是这样工作的。“同时做所有事情”的确切含义是什么?亚历山大·格拉迪什:那你对我就不走运了。我能给你的另一个提示是,改变你的编码风格,一次只对一个小的提交进行更改,并在开始下一次提交之前提交。然后,您不需要将更改委托给不同的提交,这更符合git的理念:一次只做一件事。做出小小的承诺。如果您从事不同的工作,请为每个工作创建一个临时分支。相应地合并/重新设置它们的基础。你有没有看过《逃犯》?-也就是说,作为一个通用的编辑器,我非常确定Emacs将有一个diff模式。最近也有一个。你知道“g”命令吗?这当然不太理想,但它确实给了你一个所有帅哥的列表,以及移动到特定帅哥的能力(有效地让你选择顺序)。我知道这一点,但这还不够好-我需要查看整个文件中的所有帅哥,以决定是否现在就提交它们。