Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在git中以交互方式解除某个特定的大块头的状态?_Git_Staging - Fatal编程技术网

如何在git中以交互方式解除某个特定的大块头的状态?

如何在git中以交互方式解除某个特定的大块头的状态?,git,staging,Git,Staging,在git中,如果我的索引中有来自同一个文件的两个大块头,如何以交互方式取消其中一个 除了解除整个文件的时效,然后重新暂存我想要保留的大块,或者手动撤消对工作副本的更改,然后以交互方式添加这些撤消的更改之外,还有其他方法吗?有一个很好的界面,可以解除文件块的时效: 官方客户端已经有一段时间没有被维护了,但是有更多的功能在一些圈子里很流行。()尝试git重置--patch filename;这应该与git add--patch相反。缩写形式-p也适用于这两个命令。git gui有一个不错的gui,

在git中,如果我的索引中有来自同一个文件的两个大块头,如何以交互方式取消其中一个

除了解除整个文件的时效,然后重新暂存我想要保留的大块,或者手动撤消对工作副本的更改,然后以交互方式添加这些撤消的更改之外,还有其他方法吗?

有一个很好的界面,可以解除文件块的时效:


官方客户端已经有一段时间没有被维护了,但是有更多的功能在一些圈子里很流行。()

尝试
git重置--patch filename
;这应该与git add--patch相反。缩写形式
-p
也适用于这两个命令。

git gui
有一个不错的gui,可以交互地展示或取消展示大块或线条。有更漂亮/更好的GUI客户机,但是
git GUI
是轻量级的、内置的和跨平台的(lin、win、mac)


只需右键单击一个大块头即可上台/取消上台。对于行,首先突出显示行,然后右键单击。

我认为我的版本没有(它是1.6.3.3),但这看起来是正确的答案。在这种情况下(假设您由于某种原因无法升级),我建议您使用
git stash save--keep index
保存和重置当前的工作副本更改。然后,您可以重置文件并撤消不需要的更改。如果先将文件复制到某个临时位置,则可以使用
diff
保存撤消的更改。然后,您可以再次添加文件(不需要交互式添加,因为您隐藏了其他您不感兴趣的更改)。使用
git stash pop
获取旧的更改,并使用
diff
应用您取消的更改。相当麻烦…:-(
缩写-p也适用于这两个命令。
。你的意思是
git reset-p filename
?@Nawaz:没错-
git add-p filename
有选择地对该文件的更改进行分级,而
git reset-p filename
有选择地取消分级更改。还有
git checkout-p--filename
,它允许你选择性地放弃文件中的更改。警告:
add
reset
中的每一个都可以用来撤销另外两个,但是如果使用这种形式的
签出
放弃更改,您将无法收回更改。对于Windows用户来说,有一个类似不错的UI。内置的
git gui
,除了我不是(Windows+Mac)也有一个很好的用户界面。我应该提到最近的图形化Git客户端——它很漂亮,并且支持这一点(尽管它现在在商业上的使用需要支付高昂的费用)。GitHub是免费的、漂亮的,并且支持轻松地登台和解台。GitKraken和GitHub Desktop都是跨平台的,但都不是开源的。