我如何强制将本地文件覆盖在git pull
我的本地仓库包含一个文件名文件名与服务器上的文件名相同。
错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖
我如何强制将本地文件覆盖在git pull
我的本地仓库包含一个文件名文件名与服务器上的文件名相同。
错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖
当前回答
我用这个命令清除了本地文件, 阻止我进行拉/ 合并。 但是要小心! 运行 !git merge …
首先查看是否只有那些您真的想要删除的文件 。
git merge origin/master 2>&1 >/dev/null | grep ^[[:space:]] | sed s/^[[:space:]]//g | xargs -L1 rm
git merge
列表中列出了所有这些文件。它们是由一些空白空间预设的。2>&1 >/dev/null
将错误输出重定向到标准输出 1 。grep
.grep ^[[:space:]]
只过滤带有文件名称的行。sed s/^[[:space:]]//g
从一开始就调整白空格。xargs -L1 rm
调来电话rm
在每个文件上,删除它们。谨慎地处理:git merge
产出、产出、rm
将呼吁每个以白色空格开始的行 。
其他回答
我认为答案很可怕,但虽然赫奇猪的答案可能更好,但我不认为它能有那么优雅。fetch
和merge
使用定义的战略, 从而保存您本地的更改, 只要它们不是您试图强制覆盖的文件之一 。
git add *
git commit -a -m "local file server commit message"
git fetch origin master
git merge -s recursive -X theirs origin/master
-X
是一个选项名称,并且theirs
是此选项的值。 您选择使用their
更改(另一个选项是ours
如果有冲突,则更改。
“我的地方变化很小,或者我的地方变化不起作用。我只想将一切重置回到原创。我知道我的地方变化都将失去。”
如果情况是这样的话:
git reset --hard
git pull
我不知道为什么有人不谈FETCH_HEAD
还没有。
git fetch origin master && git reset --hard FETCH_HEAD
如果你想把它放在别名里,命令是:
git config --global alias.fpull '!git fetch origin master && git reset --hard FETCH_HEAD'
我也有同样的问题 没人给我这个解决方案 但对我有用
我解决它的方法是:
.git
目录。git reset --hard HEAD
git pull
git push
现在它的工作原理。
所需经费:
解决方案 :
获取获取与 a 具有清洁联 联 年 月 日 月 日 月 月 日 月 月 日 月 月 月 日 月 月 日 月 月 日 月 月 月 日 月 月 日 月 月 月 日 月 的 月 月 月 日 月 月 日 月 的 月 月 月 月 日 月 月 月文件 文件和目录目录目录目录忽略忽略. jutignore( )和硬重置重置至来源来源.
git stash --include-untracked
git fetch --all
git clean -fdx
git reset --hard origin/master