我收藏了一堆文件。
但由于文件存在冲突,我无法应用我的存储。我已经在我的藏匿处找到了有问题的文件,我想删除它。
如何在不破坏整个文件的情况下从存储中删除单个文件?
答案 0 :(得分:23)
存储是提交(或者实际上,两次甚至有时是三次提交),您无法更改提交。那么,你的问题的字面答案是“你不能”。幸运的是,你不需要 。
您说由于文件冲突,您无法应用您的存储。但是你可以应用它,你只会遇到合并冲突。您需要做的就是解决合并冲突。
让我们说冲突在文件README.txt
中,所以这里有一些东西要写。
如果您想通过保留分支机构版本来解决它,请应用存储,然后查看分支机构版本以解决冲突:
git stash apply
git checkout --ours -- README.txt # or git checkout HEAD -- README.txt
如果要保留固定版本,请提取该版本:
git checkout --theirs -- README.txt # or git checkout stash -- README.txt
或者,使用任何旧的合并解析工具(我只使用文本编辑器),然后“git add”结果。
一旦你完成了藏匿,git stash drop
将“忘记”构成藏匿的提交。 (在你确定完成之前不要这样做;之后很难将它取回。)
答案 1 :(得分:11)
这种情况有一种解决方法:
将您的存储保存为补丁文件:
$ git stash show -p > stash.patch
应用此修补程序,跳过冲突(系统会要求您解决冲突,只是跳过丢失的文件):
$ patch -p1 < stash.patch
之后不要忘记清理stash.patch
!
答案 2 :(得分:1)
答案 3 :(得分:0)
从本地代码库中删除所需文件,然后将其推送到存储区。更改将得到反映,您的文件将从存储中删除。