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

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


当前回答

所需经费:

  1. 本地音轨更改, 这样这里没有人会失去它们 。
  2. 使本地存储库与远程源存储库匹配 。

解决方案 :

  1. 堆叠本地变化 。
  2. 获取获取与 a 具有清洁联 联 年 月 日 月 日 月 月 日 月 月 日 月 月 月 日 月 月 日 月 月 日 月 月 月 日 月 月 日 月 月 月 日 月 的 月 月 月 日 月 月 日 月 的 月 月 月 月 日 月 月 月文件 文件目录目录目录目录忽略忽略. jutignore( )硬重置重置来源来源.

    git stash --include-untracked
    git fetch --all
    git clean -fdx
    git reset --hard origin/master
    

其他回答

警告,如果您在 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}

您可以在您的工程基准文件夹中以文件忽略该文件 :

. jutignore( )

public/images/*

然后拉动修改,然后从您的 gitignore 文件中删除该行 。

似乎大多数答案都集中在master然而, 分支中, 有几次我在两个不同的地方 研究同一个功能分支, 我希望在一个分支中重设一个, 在另一个分支中反映出来, 而不是跳过很多圈子。

依据综合RNA 的答复Torrek对类似问题的答复我已经想出了一个非常成功的计划:

git fetch
git reset --hard @{u}

从一个分支运行它 它只会重新设置你的地方分支 到上游版本。

这可以恰当地用在别名中(git alits) (Git) 。git forcepull)以及:

git config alias.forcepull "!git fetch ; git reset --hard @{u}"

或者,在你的.gitconfig文件 :

[alias]
  forcepull = "!git fetch ; git reset --hard @{u}"

尽情享受吧!

您可能会发现此命令有助于丢弃本地更改 :

git checkout <your-branch> -f

然后进行清理(从工作树上移走未追踪的文件) :

git clean -f

如果您想要除去未跟踪的文件之外, 还要删除未跟踪的目录 :

git clean -fd

我不知道为什么有人不谈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'