我如何强制将本地文件覆盖在git pull
我的本地仓库包含一个文件名文件名与服务器上的文件名相同。
错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖
我如何强制将本地文件覆盖在git pull
我的本地仓库包含一个文件名文件名与服务器上的文件名相同。
错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖
当前回答
一旦您进行了 Git 拖动, 您就会得到不匹配的文件列表。 如果文件数量不大, 那么您就可以检查这些文件, 此动作将会覆盖这些文件 。
git 检出 - <filename>
我通常会这样做, 如果为了快速检查, 我修改服务器上的本地文件( 没有推荐的, 以及您在获取此议题: D 背后的理由) , 我找到解决方案后会检查被修改的文件 。
其他回答
这个解决方案总是在运行 。
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
尽管这个问题已经有许多答案,但最初的问题是解决这个问题。
错误: 未跟踪的工作树文件“ public/images/icon. gif” 会被合并覆盖
由于二进制文件无法合并, 简单的答案是
git checkout public/images/icon.gif
有了这个文件,文件就会恢复到它在这个分支的原有状态。
我平平平平平平平平git stash
如果我不想失去我的改变或类似的东西git checkout .
如果我不在乎本地修改的文件的话 海事组织比海事组织简单得多reset --hard
, clean
...所有这些东西更适合 离开分支的远程, 包括承诺,未跟踪的文件, 而不是仅仅解决一个本地修改过的文件。
我读了所有的答案,但我正在寻找一个命令来做到这一点。这是我所做的。在.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 fetch --all
git reset --hard origin/master
我建议采取以下行动:
git fetch origin master
git reset --hard origin/master
如果您要重置到源/ 主管分支, 无需获取所有远程和分支 ?
您可能会发现此命令有助于丢弃本地更改 :
git checkout <your-branch> -f
然后进行清理(从工作树上移走未追踪的文件) :
git clean -f
如果您想要除去未跟踪的文件之外, 还要删除未跟踪的目录 :
git clean -fd