[英]Failed to pull from git automatically
我有一個啟動腳本,應該將機器上的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
仍然得到錯誤。 我怎樣才能確保從主人那里獲得成功?
[這是自動完成的。]
謝謝
如果您只想讓本地副本中的origin/master
內容丟棄任何本地更改,您有兩個選擇:
git fetch origin && git reset --hard origin/master
來更新本地副本,從而放棄對跟蹤文件的所有更改。 這比完整克隆選項更快,因為它只需要獲取本地沒有的遠程倉庫中的新提交。 這有一個小問題,即您的工作副本可能包含遠程倉庫中的更多文件。 執行git clean -dffx
將刪除git未跟蹤的所有內容,因此您最終會獲得遠程git clean -dffx
的干凈副本。 錯誤:合並將覆蓋以下未跟蹤的工作樹文件:
如果您沒有重要的本地更改,請使用remote/master
hard reset
local/master
remote/master
。
$ git fetch
$ git reset --hard origin/master
注意:潛在的hard reset
危險命令,因為它會丟棄所有未提交的更改和本地提交,而不是remote/master
。
替代方案:
添加未跟蹤的文件。
$ git add .
回到干凈的工作目錄中stashing
。 保持本地修改並reverts
工作目錄以匹配HEAD commit
。
$ git stash
現在拉起源大師。
$ git pull origin master
您已將這兩個文件添加到存儲庫,
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.