【发布时间】:2019-01-27 03:27:07
【问题描述】:
假设您执行 git status 并返回一个您想要一个一个检查的文件列表,然后一个一个地提交它们。
或者您对目录执行 git diff 并希望在检查后直接提交。如何用一个简单的技巧做到这一点?
【问题讨论】:
-
这就是
git add -i的用途。这是 git add 的交互模式,让您可以逐个文件和逐个块地工作,向您展示每一步的区别。
假设您执行 git status 并返回一个您想要一个一个检查的文件列表,然后一个一个地提交它们。
或者您对目录执行 git diff 并希望在检查后直接提交。如何用一个简单的技巧做到这一点?
【问题讨论】:
git add -i 的用途。这是 git add 的交互模式,让您可以逐个文件和逐个块地工作,向您展示每一步的区别。
2020 年更新:
折腾后我决定安装和使用ydiff。
执行ydiff -s 在终端中并排显示差异。
不费吹灰之力就在这里看看,不要介意我的旧答案:
https://github.com/ymattw/ydiff
[ 旧 ]
提交前的 Git diff?
开箱即用的简单解决方案:
将此粘贴到您的 .bashrc 或 .zshrc 中:
gdiffy() { git diff $1 && git add $1 && git commit $1; }
首先它会弹出一个差异,当你关闭它时,它会允许你输入一个提交信息。
用法示例:
gdiffy config/database.yml
或
gdiffy .
【讨论】:
注意:diff + commit 不起作用,因为您没有向索引添加任何内容。
正如评论,git add -i or git add -p (--patch) 将为您提供差异视图,并可以添加或跳过每个差异大块。
然后就可以提交修改后的索引了。
【讨论】:
如果您在 GUI 环境中。您可以从控制台启动"git gui"..
这将启动一个窗口,其中左窗格将包含已更改文件的列表。选择其中任何一个,都会显示差异。
您可以通过单击文件名左侧的图标来添加文件,然后在同一窗口中提交。
希望对你有帮助。
【讨论】: