讓我們從一個情境開始。git checkout之間的差異HEAD - 文件名和git簽出 - 文件名
- 我藏了一些變化(5檔)
git stash
- 更改一些文件
- 提交更改
git commit -m "Commit message"
- 什麼變化從藏匿回
git stash apply
我收到了合併衝突在2個文件中,因爲提交。我不再需要這兩個文件中的更改所以我試圖恢復這些更改。
我做git checkout -- background.js
它失敗,錯誤
error: path 'src/background/background.js' is unmerged
但後來我讀this SO post,並試圖
git checkout HEAD -- background.js
它的工作原理成功。這兩個文件都發生在我身上。我想了解bewteen
git checkout -- file
和git checkout HEAD -- file
+1非常感謝您的詳細解釋。對此,我真的非常感激。 – sachinjain024
@blunderboy,簡而言之:'git checkout -'從索引中檢出名爲''*的內容*,而'git checkout HEAD - '從特定的提交中檢出它, HEAD'解析(在90%的情況下,它是您當前簽出分支的提示)。 –
kostix
@kostix我認爲你應該添加它作爲答案。簡單,直接和重點。並且請在你的回答中寫出1-2條關於git索引的文字,以使它更完整。我喜歡它。 – sachinjain024