我如何强制将本地文件覆盖在git pull我的本地仓库包含一个文件名文件名与服务器上的文件名相同。

错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖


当前回答

尽管最初提出这个问题,但顶尖的答案会给有类似问题的人造成问题,但不想失去本地文件。例如,见Al-Punk和CrizCraig的评论。

以下版本对临时事务组(临时事务组)进行本地变更(临时事务组)tmp检查原始分支(我假设master)和合并更新。您可以用stash,但我发现通常更容易使用分支/合并方法。

git checkout -b tmp
git add *; git commit -am "my temporary files"
git checkout master

git fetch origin master
git merge -s recursive -X theirs origin master

我们假设其它存储库origin master.

其他回答

看起来最好的办法是首先做到:

git clean

删除所有未跟踪的文件,然后继续按常规git pull...

我认为,冲突有两种可能的原因,必须分别加以解决,而且据我所知,上述答案中没有一个涉及这两个问题:

  • 未跟踪的本地文件需要删除, 手动( 安全) 或按其他答案中的建议, 由git clean -f -d

  • 离子分支以外的当地承诺也需要删除。git reset --hard origin/master(取代“校长”的分支)git fetch origin(一)(一)

回报 :

谈到前几个答复中的拉/拉/拉/加,我想分享一个有趣的和有成果的把戏,

git pull --rebase

以上命令是我Git生命中最有用的命令 拯救了很多时间

在将您新承诺推进到服务器之前, 请尝试此命令, 它会自动同步最新的服务器更改( 加上一个抓取+合并) , 并将您的承诺放在 Git 日志的顶部 。 无需担心手动拉动/ 合并 。

查找详细信息"Git pull -rebase"是做什么的?.

警告,如果您在 gitignore 文件中有任何目录/ * 条目, 这样做将永久删除您的文件 。

有些答案似乎很可怕。 从发生在Lauri身上的可怕意义来看,

相反(给予 > v1.7.6):

git stash --include-untracked
git pull

稍后,您可以清理藏匿历史。

手动,一对一:

$ git stash list
stash@{0}: WIP on <branch>: ...
stash@{1}: WIP on <branch>: ...

$ git stash drop stash@{0}
$ git stash drop stash@{1}

残酷地说,所有 - 一次:

$ git stash clear

当然,如果你想回到你藏的东西:

$ git stash list
...
$ git stash apply stash@{5}

在 Windows 上执行此单命令 :

git fetch --all & git reset --hard origin/master