git 實用問題整理

上車前只熟悉了add, commit,然後就碰上了 一不小心玩壞了。。。mark一下

1. git reflog 查看之前的所有記錄,git log不能查看已刪除的commit

3146d6f (HEAD -> master) HEAD@{0}: reset: moving to 3146d6f17082abcadb2e254616f603ef4ecdc4d7
fd7d8a5 (origin/master, origin/HEAD) HEAD@{1}: commit: test2
3146d6f (HEAD -> master) HEAD@{2}: commit: test1
1) 刪除commit2的test後,git reflog仍可查看記錄,並通過 git reset --hard fd7d8a5 回退
2) rebase造成提交丟失,可reflog找到commit,在該節點創建分支

2. detached HEAD

git reset 到某次的提交時,HEAD指向了未知的分支
detached狀態下的提交,沒有分支指針指向

3. 回退代碼 git reset / git revert

  • reset 修改本地分支HEAD的位置,再push遠端,HEAD指針後退(如果和老的分支merge時,刪掉的commit還會再出現)
  • revert 產生一次新的commit將上一commit內容回滾,HEAD指針依然前移

4. git stash

  • 暫存當前改動,對於有新加文件的情況
git stash save -a/-u, -a 所有文件,包含所有文件,.gitignore忽略的文件;建議-u
  • 應用某個暫存,pop/apply
pop 會從stash 列表刪除該內容
apply 不會刪除
  • 查看某個stash
git stash show
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章