git - 如何提取除一个文件以外的所有文件?

标签 git git-pull

除了一个文件(下面的 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/

相关文章:

git - 我可以为本地分支定义多个上游分支吗?

git - git-pull 如何与 git-fetch 结合使用(是 : what does git-pull option `-p` mean)?

git - 如何避免为在 www-data 下执行的 git pull 输入密码

git - 修复 git 中的换行问题

git - 适用于GIT的Visual Studio工具-FETCH/PUBLISH与PULL/PUSH

database - 从一组文件重建版本控制

Git 身份验证 - 以新用户身份 pull

git 克隆问题 : repo too large? (50m)

git - 在 --skip-worktree 之后无法切换分支

git - 使用 git grep 时是否可以默认忽略某些目录?