我如何强制在 git pull 上覆盖本地文件 ? 我的本地仓库包含一个与服务器相同的文件名文件 。
错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖
我如何强制在 git pull 上覆盖本地文件 ? 我的本地仓库包含一个与服务器相同的文件名文件 。
错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖
当前回答
您可以尝试 Git pull - 力 或者可能通过使用 Git 藏起来来隐藏你的行为 然后运行 git pull 。
其他回答
我认为答案是可怕的。但尽管刺绣猪的答案可能更好, 但我并不认为它是多么的优雅。 我发现这样做的方式是使用获取和合并 与定义的战略。 这样应该可以保存你的本地变化, 只要它们不是你试图强迫覆盖的文件之一。
首做您更改中的一次承诺
git add *
git commit -a -m "local file server commit message"
然后在发生冲突时获取更改并覆盖
git fetch origin master
git merge -s recursive -X theirs origin/master
- x 是一个选项名称, 而它们就是该选项的价值。 您选择使用它们的更改( 另一个选项是我们的更改) , 如果有冲突 。
而不是做:
git fetch --all
git reset --hard origin/master
我建议采取以下行动:
git fetch origin master
git reset --hard origin/master
如果您要重置到源/ 主管分支, 不需要获取所有远程和分支 ?
我有一个类似的问题。 我必须这样做:
git reset --hard HEAD
git clean -f
git pull
此解决方案总是在运行 。
cd $GIT_ROOT_DIRECTORY
git fetch origin/$TARGET_BRANCH
git rm -rf --cached .
git reset --hard origin/TARGET_BRANCH
git clean -df
git pull origin $TARGET_BRANCH
只是做做
git fetch origin branchname
git checkout -f origin/branchname // This will overwrite ONLY new included files
git checkout branchname
git merge origin/branchname
来避免所有不想要的副作用,例如删除您想要保存的文件或目录等。