問題

如何重置我的本地分支,就像遠端儲存庫上的分支一樣?

我做了:

 git reset --hard HEAD
 

但是當我執行git status時,

 On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
      modified:   java/com/mycompany/TestContacts.java
      modified:   java/com/mycompany/TestParser.java
 

請告訴我為什麼我有這些“修改”?我沒有觸控這些檔案?如果我這樣做,我想刪除它們.

  最佳答案

將分支設定為與遠端分支完全匹配可以分兩步完成:

 git fetch origin
git reset --hard origin/master
 

如果您想在執行此操作之前儲存當前分支的狀態(以防萬一),您可以做到:

 git commit -a -m "Saving my work, just in case"
git branch my-saved-work
 

現在您的工作儲存在分支 “my-saved-work” 上,以防您決定返回它(或者希望稍後檢視它或者將其與更新的分支進行對比)。

請注意,第一個例子假設遠端回購的名稱是“原產地”,遠端回購中名為“主”的分支與本地回購中目前的checked-out分支匹配.

順便說一句,您所處的這種情況看起來非常像一個常見的例子,在這種情況下,推送已經完成到非裸儲存庫的當前已檢出的分支.您最近是否推進到您的本地倉庫?如果沒有,那麼沒有擔心 – 其他的東西必須導致這些檔案意外地最終被修改.否則,您應該意識到它不建議推送到非裸儲存庫(而不是推送到當前的checked-out分支,特別是).

  相同標籤的其他問題

gitundo
上一個問題:
下一個問題: