我注意到在Tower(Git客户端for the Mac)中,用户甚至可以逐行放弃更改。我想知道如何使用命令行来实现这一点?或者可能是Tower的一些特殊之处?
我经常遇到这种情况:
@@ -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];
...
看到我有一个+
和一个-
了吗?我想放弃它,这样我的提交就有了最少的修改(因此冲突的可能性更小,更容易审查)
:)
5条答案
按热度按时间6ie5vjzr1#
这称为交互式暂存,可以使用
git add -i
或git add -p
完成。有关详细信息,请参阅git-add manpage、pro git和Git Community Book。编辑:
要以交互方式取消暂存文件,可以用途:
另请参见此SO问题:Undo part of unstaged changes in git
uidvcgyl2#
要撤消块,请使用
这是一个非常隐藏的特性。你可以用
git add --interactive
一个块一个块地“暂存”,但是你不能用这种方式“取消暂存”。git add
还提供了--patch
选项,它和--interactive
一样,但是直接进入“补丁”菜单点(否则你必须按pENTER键)。git reset
不镜像--interactive
选项,但具有--patch
。9q78igpj3#
您可以在暂存文件之前使用
git add -e
编辑文件。yqkkidmi4#
您可以使用自由程序Source Tree丢弃块或特定行。
gzjq41n45#
要以交互方式取消暂存文件,请用途:
那么您将获得以下选项-
使用第3个选项
revert
取消暂存文件在此处阅读更多信息-https://git-scm.com/book/en/v2/Git-Tools-Interactive-Staging