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

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


当前回答

我试图在三角2Webpack-Starter上使用第2号材料分支, 并度过了一段很漫长的时光。 这是我唯一可以下载和使用该分支的方法。

git clone --depth 1 https://github.com/angularclass/angular2-webpack-starter.git

cd angular2-webpack-starter/

git checkout -b material2

打开工程文件夹, 删除所有非隐藏的文件和文件夹。 留下所有隐藏的文件和文件夹 。

git add .

git commit -m "pokemon go"

git reset --hard

git pull origin material2

(当编辑器弹出时,按“:wq”键,然后按输入)

现在你准备好了

其他回答

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

尽情享受吧!

我也有同样的问题 没人给我这个解决方案 但对我有用

我解决它的方法是:

  1. 删除全部文件。 仅留下.git目录。
  2. git reset --hard HEAD
  3. git pull
  4. git push

现在它的工作原理。

根据我自己的类似经验,以上Strahinja Kustudidic提出的解决方案是迄今为止最好的。 正如其他人已经指出的那样,仅仅努力重设就会消除全部( 全部)未跟踪的文件, 其中可能包含很多您不想删除的文件, 例如配置文件。 更安全的做法是只删除即将添加的文件, 而对于这个事项, 您可能还想要检查任何即将更新的本地修改过的文件 。

因此,我更新了Kustudic的脚本来做这个。我还修了个打字机(在原文中遗漏了一个字)。

#/bin/sh

# Fetch the newest code
git fetch

# Delete all files which are being added,
# so there are no conflicts with untracked files
for file in `git diff HEAD..origin/master --name-status | awk '/^A/ {print $2}'`
do
    echo "Deleting untracked file $file..."
    rm -vf "$file"
done

# Checkout all files which have been locally modified
for file in `git diff HEAD..origin/master --name-status | awk '/^M/ {print $2}'`
do
    echo "Checking out modified file $file..."
    git checkout $file
done

# Finally merge all the changes (you could use merge here as well)
git pull

我也有类似的问题,我不得不这么做

git reset --hard HEAD
git clean -f
git pull

解决这一问题的另一种办法是,首先将任何未承诺的改动用git stash然后运行,然后运行

git pull --rebase=interactive -s recursive -X theirs

在互动的重新基础中,你可以改变你所有本地不想要的承诺drop,这将摆脱他们 并离开你 在远程分支的头部 而不引入合并承诺。

现在你可以跑了git stash apply如果你有 本地藏的改变 你想带回来。