我如何强制在 git pull 上覆盖本地文件 ? 我的本地仓库包含一个与服务器相同的文件名文件 。
错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖
我如何强制在 git pull 上覆盖本地文件 ? 我的本地仓库包含一个与服务器相同的文件名文件 。
错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖
当前回答
i 认为冲突有两种可能的原因,必须分别解决,而且只要我能够看出上述答案没有涉及两个问题:
未跟踪的本地文件需要删除, 手动( 安全) 或按照其他回答中的建议, 由 Git 清洁 - f - d 本地承诺删除, 不在远程分支的本地承诺也需要删除 。 最容易实现的方法是: git 重设 - hard 来源/ master (由您正在工作的分支替换“ 主机 ” , 并先运行 git 抓取来源 )
其他回答
我试图在三角2网块启动器上使用材料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' , 然后按进)
现在你准备好了
警告,如果您在 gitignore 文件中有任何目录/ * 条目, 这样做将会永久删除您的文件 。
@lauri在 @lauri 遭遇时, 听从David avsajanishvili的建议,
而不是 (git> 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}
最顶尖的答案会给有类似问题的人带来问题, 但不想失去本地文件。 例如,
以下版本将您本地的更改引入临时分支( tmp) , 检查原始分支( 我假设是母分支) 并合并更新 。 您可以用隐藏来做到这一点, 但我发现通常更容易使用分支/ 合并方法 。
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
假设另一个仓库是源主
尽管这个问题已经有许多答案,但最初的问题是解决这个问题。
错误: 未跟踪的工作树文件“ public/images/icon. gif” 会被合并覆盖
作为二进制文件无法合并, 简单的答案是
git checkout public/images/icon.gif
同时,文件将恢复它在这个分支的先前状态。
如果我不想失去我的更改或 Git 检出之类的东西, 我通常会做 Git 隐藏。 如果我不关心本地修改过的文件。 比重置( 硬的、干净的) 更简单得多... 和所有这些东西 更适合离开分行的远程, 包括承诺的、 未追踪的文件, 而不是仅仅解决本地修改过的文件 。
您可以尝试 Git pull - 力 或者可能通过使用 Git 藏起来来隐藏你的行为 然后运行 git pull 。