[英]Git deleted untracked files on pull
我在計算機上創建了一個git存儲庫並將其推送到我的服務器。 然后我進入另一台應該與存儲庫內容合並的計算機上的文件夾。
以下是我執行的確切步驟(我將其復制):在第一個存儲庫中:
git init
git remote add origin *repo adress*
git remote update
echo "abc" > a
git add a
git commit -a -m "Intial commit"
git push --set-upstream origin master
在第二個(文件被刪除的那個):
git init
echo "def" > b
git add b
git remote add origin *repo adress*
git remote update
git pull origin master
我期望發生的是git將拉出這些文件然后我可以提交我的本地文件並將其推回。 但現在我的本地文件已經消失了。 git真的只是在沒有警告的情況下刪除本地文件(我沒有使用任何強制選項或類似)?
有沒有可能讓他們回來,或者這是預期和預期的行為,只是刪除未跟蹤的文件?
只有git status
輸出說:
# On branch master
nothing to commit, working directory clean
我只是用測試存儲庫重新定義了這些步驟,它按照描述進行:文件“a”被拉入第二個存儲庫,但是文件“b”沒有消失(只有一個被'ls'顯示)。
好吧,我發現了另一件奇怪的事情。
在git pull
的幫助下,有如下句子:
“在默認模式下,git pull是git fetch的簡寫,后跟git merge FETCH_HEAD”
所以,我使用$git fetch
然后$git merge FETCH_HEAD
而不是上面的git pull origin master
。 然后有什么了不起的, 文件b仍然存在。
所以,我真的不知道git pull origin master
到底做了什么。
另外,我看到了一個解釋
那就是“git merge發現它沒有有效的HEAD,因此會進行硬重置,這顯然會覆蓋已存在的所有文件。”
但我真的很懷疑這一點,因為我可以成功使用$git merge FETCH_HEAD
。
如果要查找丟失的文件,可以轉到@itotheth提供的Git pull刪除未提交的更改
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.