2017-09-14 25 views
0

git打我周圍跑,在一個分支my_branch手動編輯.git文件夾有多糟?

git reset HEAD~1 

然後,我想git pull撤消reset

但是起源是一個在線存儲庫和,離線,git pull只是中止

所以我找到了一個解決方法:

  • 從日誌
  • 編輯.git/refs/heads/origin/my_branch獲取來源尖端的哈希值,並從日誌由一個替換的哈希

似乎工作,但看起來不那麼幹淨/不安全以我爲我不這麼用打破.git文件夾 所以,這就是爲什麼我問是否安全

(是的,我覺得愚蠢到沒有覺得pull相當於fetch + merge

回答

1

編輯分支指針並不壞,但很容易就可以在沒有它的情況下撤銷重置。

# Reset to the parent commit 
git reset HEAD~1 
# Reset to where HEAD was, before you last changed it 
git reset '[email protected]{1}' 

可以使用git reflog命令來瀏覽這些,這就是你可以找到[email protected]{1}

通常,如果要撤消git reset,請使用另一個git reset進行撤消。

0

您可以僅檢查您重置的提交。即使你不那麼容易看到它們,Git也會保留那些周圍的人。散列基本上都是你真正需要的。

0

抵達了類似的結果,以拉與

git reset --hard origin/my_branch 

注意:--hard是鋒利的工具。小心使用它。在這種情況下,它會重置您的本地my_branch,工作樹和索引,以匹配最近獲取或拉取的my_branch中的內容。未提交的作品可能會丟失。