我有一个启动脚本,应该将机器上的git repo与master
同步git pull -r origin master
获取
error: The following untracked working tree files would be overwritten by merge:
file1.py
Folder2/file3.rb
Please move or remove them before you can merge.
Aborting.
尝试使用
解决此问题git clean -df
git clean -dn
git stash
git checkout master
git pull -r origin master
# to pull new branches
git fetch
仍然收到错误。 我怎样才能确保从主人那里获得成功?
[这是自动完成的。]
由于
答案 0 :(得分:2)
如果您只想让本地副本中origin/master
的内容丢弃任何本地更改,您有2个选项:
git fetch origin && git reset --hard origin/master
来更新本地副本,从而放弃对跟踪文件的所有更改。这比完整克隆选项更快,因为它只需要获取本地没有的远程仓库中的新提交。这有一个小问题,即您的工作副本可能包含远程仓库中的更多文件。执行git clean -dffx
将删除git未跟踪的所有内容,因此您最终会获得远程仓库的干净副本。答案 1 :(得分:1)
错误:以下未跟踪的工作树文件将被合并覆盖:
如果您没有重要的本地更改,请使用hard reset
local/master
remote/master
进行$ git fetch
$ git reset --hard origin/master
。
hard reset
N.B:潜在的remote/master
危险命令,因为它会丢弃所有未提交的更改以及未在$ git add .
中的本地提交。
替代方案:
添加未跟踪的文件。
stashing
通过reverts
返回干净的工作目录。保持您的本地修改,HEAD commit
工作目录与$ git stash
匹配。
$ git pull origin master
现在拉起源大师。
unsafe
答案 2 :(得分:0)
您已将这两个文件添加到存储库
file1.py
Folder2/file3.rb
并没有提交。因此,如果您不希望这些文件从您的存储库中手动删除这些文件。
之后你的脚本会正常工作<强>更新强>
如果你想要通用的方式,
git clean -f -d
或git clean -fd
git clean -f -X
或git clean -fX
git clean -f -x
或git clean -fx