除了一个文件(下面的 GNUmakefile
)之外,我想提取更改。我看过 git-pull(3)
手册页,但我不太了解该选项。
我如何提取所有更改,但跳过导致 git 问题的文件?是否有“忽略有冲突的文件”或“忽略文件 X”或类似选项?
(最糟糕的是,GNUmakefile
是在虚拟机之间复制/粘贴的,因此它们几乎是同一个文件。cryptopp-rw
的 makefile 有一些依赖配方添加在它的末尾)。
cryptopp-rw$ git pull
remote: Counting objects: 7, done.
remote: Total 7 (delta 4), reused 4 (delta 4), pack-reused 3
Unpacking objects: 100% (7/7), done.
From https://github.com/weidai11/cryptopp
4206b4a..cf08f3e master -> origin/master
Updating 4206b4a..cf08f3e
error: Your local changes to the following files would be overwritten by merge:
GNUmakefile
Please, commit your changes or stash them before you can merge.
Aborting
最佳答案
你可以 stash 当前的工作树然后进行 pull ,这样可以防止 git 抛出错误并中止进程。 pull 后,您可以使用以下方法恢复 stash 的文件:
git stash pop stash@{<revision>}
或者如果此解决方案需要一些您想要阻止的额外步骤,您可以通过覆盖 git 存储库中已有的文件来忽略导致问题的文件:
git checkout HEAD^ file/to/overwrite
git pull
或者您可以尝试使用 -f
命令进行 pull :
git pull -f
关于git - 如何提取除一个文件以外的所有文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31062138/