我想存放一些文件,在这些文件中,有些文件我想完全存放,另一些文件我希望存放其中的一部分。
例如,假设我有以下文件:
前2个文件(1和2)是未跟踪的新文件。 跟踪了另外2个(3和4),其中一个(3)包含我要存储的几行,而我不想存储的几行,另一个文件(4)我想存储的所有行。 / p>
如何隐藏在这种情况下?
更新:如果存储特定文件,则可以使用git stash push -m _STASH_MESSAGE_ _PATH_1 _PATH_2
就我而言,我需要存储部分文件更改(例如,第1-20行已更改,但我只希望存储1-12行并保持13-20行可以工作)
答案 0 :(得分:4)
在Git中,许多命令带有标志-p
或--patch
。此标志使您可以与文件的certain parts而非整个对象进行交互。
git stash
没什么不同。来自documentation on git stash
;
使用
--patch
,您可以从HEAD和要隐藏的工作树之间的差异中交互选择块。存储项的构造应使其索引状态与存储库的索引状态相同,并且其工作树仅包含交互式选择的更改。然后,选定的更改将从工作树中回滚。
因此,就您而言,运行
git stash -p
然后以交互方式选择所需文件的部分即可。
有关在交互模式下使用命令的详细信息,请参阅git-add
文档中标题为Interactive Mode的部分。
答案 1 :(得分:0)
git stash -p
是一种逐块检查更改的方法,可以让您决定哪些要隐藏,哪些不需要(与git add -p
一样)(doc)。 / p>