我如何强制将本地文件覆盖在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 -f -d这就是为什么:出于某种原因, 如果你的档案被Git(通过.gitignore 条目,我想,通过.gitignore 条目)忽略了, 它仍然费了时间,拉拉拉,但一个清洁除非添加, 否则不会删除它-x.

我读了所有的答案,但我正在寻找一个命令来做到这一点。这是我所做的。在.gitconfig中添加了一个Git 化名。

[alias]
      fp = "!f(){ git fetch ${1} ${2} && git reset --hard ${1}/${2};};f"

将命令运行为

git fp origin master

等于

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

这是恢复变革的最佳做法:

  • git commit提交您预置的更改, 以便将其保存在reflog 格式的reflog(见下文)
  • git fetch获取最新的上游变化
  • git reset --hard origin/master硬重置源主分支

缩略reflog 格式的reflog 本地存储库中正在更新的记录分支和其他参考资料简简简简简简简reflog 格式的reflog更改的历史历史.

因此,这总是一个伟大的实践 承诺。 承诺被附在折叠件上, 以确保您永远有办法检索删除的代码 。

所需经费:

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

解决方案 :

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

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

似乎大多数答案都集中在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}"

尽情享受吧!