我如何强制在 git pull 上覆盖本地文件 ? 我的本地仓库包含一个与服务器相同的文件名文件 。
错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖
我如何强制在 git pull 上覆盖本地文件 ? 我的本地仓库包含一个与服务器相同的文件名文件 。
错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖
当前回答
这里的答案似乎大多集中在主分支上; 但是,有时我在两个不同的地方 研究同一个功能分支, 我希望一个在另一个在重新基点上得到反映, 而不是跳过很多圈子。
根据Rna的回答和Torek对类似问题的回答, 我得出了一个非常有效的答案:
git fetch
git reset --hard @{u}
从一个分支运行它, 它只会重新设置你的地方分支 到上游版本。
也可以将它写进别名(git strengpull)中:
git 配置别名.forcepull "! git 获取; git 重设 - hard u}"
或者,在您的. git config 文件 :
[alias]
forcepull = "!git fetch ; git reset --hard @{u}"
享受吧!
其他回答
您可能会发现此命令有助于丢弃本地更改 :
git checkout <your-branch> -f
然后进行清理( 从工作树上移走未跟踪的文件) :
git clean -f
如果您想要除去未跟踪的文件之外, 还要删除未跟踪的目录 :
git clean -fd
这里的答案似乎大多集中在主分支上; 但是,有时我在两个不同的地方 研究同一个功能分支, 我希望一个在另一个在重新基点上得到反映, 而不是跳过很多圈子。
根据Rna的回答和Torek对类似问题的回答, 我得出了一个非常有效的答案:
git fetch
git reset --hard @{u}
从一个分支运行它, 它只会重新设置你的地方分支 到上游版本。
也可以将它写进别名(git strengpull)中:
git 配置别名.forcepull "! git 获取; git 重设 - hard u}"
或者,在您的. git config 文件 :
[alias]
forcepull = "!git fetch ; git reset --hard @{u}"
享受吧!
如果您不总是想要粘贴分支名称, 或者您想要在脚本中自动显示此分支名称, 这里是一个通用的解决方案 。
git fetch
git reset --keep origin/$(git rev-parse --abbrev-ref HEAD)
如果您也想重置本地更改 :
git fetch
git reset --hard origin/$(git rev-parse --abbrev-ref HEAD)
您也可以使用此命令添加一个弹片别名 :
alias gplf='git fetch && echo "HEAD was at $(git rev-parse --short HEAD)" && git reset --hard origin/$(git rev-parse --abbrev-ref HEAD)'
1: 重置为上一个承诺
git reset --hard HEAD
2: 删除未跟踪的文件
git clean -f
3:拉起承诺
git pull
资料来源:
http://git-scm.com/docs/git-reset https://git-scm.com/docs/git-clean/
您可以尝试 Git pull - 力 或者可能通过使用 Git 藏起来来隐藏你的行为 然后运行 git pull 。