我如何强制在 git pull 上覆盖本地文件 ? 我的本地仓库包含一个与服务器相同的文件名文件 。
错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖
我如何强制在 git pull 上覆盖本地文件 ? 我的本地仓库包含一个与服务器相同的文件名文件 。
错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖
当前回答
看起来最好的办法是首先做到:
git clean
以删除所有未跟踪的文件,然后继续使用通常的 Git 调用...
其他回答
此解决方案总是在运行 。
cd $GIT_ROOT_DIRECTORY
git fetch origin/$TARGET_BRANCH
git rm -rf --cached .
git reset --hard origin/TARGET_BRANCH
git clean -df
git pull origin $TARGET_BRANCH
不要使用 git 重置 -- hard. 来擦除他们可能完全不可取的更改。 相反 :
git pull
git reset origin/master
git checkout <file1> <file2> ...
当然,你可以使用Git抓取而不是Git拉动, 因为显然它不会合并, 但如果你通常拉动它, 继续拉动这里是有道理的。
所以这里发生的情况是 git put 更新您的源/ 主管参考文件; git 重置更新您本地的分支引用与源/ 主管的引用相同, 无需更新任何文件, 所以您的检查状态没有变化; 然后按需要, git 检查退出将文件返回到您本地的分支索引状态 。 如果在现场和上游主控中添加了完全相同的文件, 索引已经符合重置之后的文件, 因此在常见情况下, 您不需要在
如果上游分支也包含您想要自动应用的承诺,您可以在进程上跟随细微的变异:
git pull
git merge <commit before problem commit>
git reset <problem commit>
git checkout <file1> <file2> ...
git pull
我有一个奇怪的状况, 无论是git clean or git reset works. 我必须在每一个未跟踪的文件上使用以下脚本, 从 git 索引中删除冲突文件 :
git rm [file]
那样我就能好好拉了
看起来最好的办法是首先做到:
git clean
以删除所有未跟踪的文件,然后继续使用通常的 Git 调用...
对我唯一有用的是:
git reset --hard HEAD~5
这会使你们再返于五次,然后是五次,
git pull
我通过查查如何解除Git合并发现这一点。