我注意到在Tower(Mac的Git客户端)中,用户甚至可以逐行丢弃更改。我想知道如何使用命令行完成这项工作?或许是塔的特别之处?
在这种情况下,我经常发现自己:
@@ -391,7 +392,7 @@ extern BOOL validateReceiptAtPath(NSString *path);
NSURL *url = [self fileURL];
if (url != nil) {
NSRect readFrame = [self _readPreferenceOfFileAtURL:url];
-
+
for (NSScreen * screen in [NSScreen screens]) {
NSRect screenVisibleRect = [screen visibleFrame];
...
了解我如何拥有一个+
和一个-
?我想丢弃它,所以我的提交有最小的变化(因此冲突的可能性更小,更容易审查)
:)
答案 0 :(得分:29)
这称为交互式暂存,可以使用git add -i
或git add -p
完成。有关详细信息,请参阅git-add manpage,pro git和Git Community Book。
编辑:
要以交互方式取消暂存文件,您可以使用:
git checkout -p HEAD
答案 1 :(得分:2)
撤消帅哥使用
git reset --patch
这是一个非常隐藏的功能。您可以使用git add --interactive
以隐藏阶段 hunk,但不能以这种方式取消暂停。 git add
还提供--patch
选项,类似--interactive
,但直接转到“补丁”菜单点(否则您必须点击 p ENTER )。
git reset
不会反映--interactive
选项,但会--patch
。
答案 2 :(得分:1)
您可以在暂存之前使用git add -e
编辑文件。
答案 3 :(得分:0)
您可以使用免费程序Source Tree丢弃帅哥或特定行。
答案 4 :(得分:0)
以交互方式取消暂存文件使用:
git add -i
然后您将获得以下选项 -
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
使用第3个选项revert
取消暂存文件
在此处阅读更多内容 - https://git-scm.com/book/en/v2/Git-Tools-Interactive-Staging