簡體   English   中英

為什么 git pull 不能恢復已刪除的文件?

[英]Why git pull doesnt' restore deleted files?

github 上有兩個遠程倉庫:

repo_course :課程導師定期發布新的作業骨架代碼;

repo_me :我自己完成的作業代碼來評分;

它是這樣工作的:

git clone <repo_me url> :在我的計算機上創建本地工作git clone <repo_me url> ,它是空的

git add remote skeleton <repo_course url>

git pull skeleton master : 獲取骨架代碼,完成並push送到repo_me

我的問題是:

假設我拉了skeleton.java並重命名或刪除它,然后我再次git pull skeleton master ,它不會恢復。 這是為什么? 這似乎pull將在第一只有一次添加新的框架文件pull自最后一次。 它被設計成這樣有什么好處?

如果我確實需要從repo_course恢復我刪除的文件,我repo_course怎么repo_course

如果您希望重播您的工作,而不是合並他們的工作,請嘗試(使用 Git 2.9 或更高版本):

git config --global pull.rebase true
git config --global rebase.autoStash true

然后一個簡單的 git pull 將在您獲取的內容之上重放(rebase)您的本地提交(包括您的文件重命名)。

“為什么 git pull 不能恢復已刪除的文件?

因為合並會用合並的內容覆蓋本地修改(如文件重命名)。
與 rebase 不同,它會將您自己的本地工作(如文件重命名)重新設置在獲取的內容之上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM