git从存储中删除文件

时间:2014-03-28 20:25:08

标签: git git-stash merge-conflict-resolution

我收藏了一堆文件。

但由于文件存在冲突,我无法应用我的存储。我已经在我的藏匿处找到了有问题的文件,我想删除它。

如何在不破坏整个文件的情况下从存储中删除单个文件?

4 个答案:

答案 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)

这种情况有一种解决方法:

  1. 将您的存储保存为补丁文件:

    $ git stash show -p > stash.patch
    
  2. 应用此修补程序,跳过冲突(系统会要求您解决冲突,只是跳过丢失的文件):

    $ patch -p1 < stash.patch
    
  3. 之后不要忘记清理stash.patch

答案 2 :(得分:1)

  1. 隐藏您未提交的更改。
  2. 应用原始存储空间
  3. 丢弃文件
  4. 4应用包含您未提交的更改的存储区。

答案 3 :(得分:0)

从本地代码库中删除所需文件,然后将其推送到存储区。更改将得到反映,您的文件将从存储中删除。