git學習總結之fsck、reflog、恢復已刪除分支

最新更新時間:2020年03月12日12:09:55

《猛戳-查看我的博客地圖-總有你意想不到的驚喜》

本文內容:git常用命令

fsck

  • git fsck

fill system check 文件系統檢查,用來對本地和遠程倉庫的一致性檢查,dangling objects懸空對象
在懸空對象列表中,使用git show commitId查看懸空記錄的詳情,git merge commitId即可恢復

reflog

  • git reflog

reference log引用日誌,查看本地本地的所有操作記錄,每個分支上查看的結果一樣,最早的一條記錄是clone: from http://***.gitctrl+z退出查看模式

包含刪除本地分支和遠程分支的記錄

  • 引用日誌記錄包含以下幾種情況
  • pull
  • Fast-forward 快進
  • Merge made by the ‘recursive’ strategy. 遞歸合併策略
  • merge develop: Fast-forward
  • commit
  • commit (merge)
  • checkout
  • moving from master to master 分支名相同表示刪除記錄
  • moving from develop to master
  • moving from commit_id to branch_name
  • moving from branch_name to tag_name
  • merge branch_name
  • Fast-forward
  • Merge made by the ‘recursive’ strategy.
  • reset
  • moving to HEAD
  • moving to feature_camera
  • 恢復刪除的遠程分支

git reflog查看刪除的遠程分支操作的commit_id
git checkout -b recover_branch_name commit_id創建新分支方案一
git branch recover_branch_name HEAD@{number}創建新分支方案二
git push origin recover_branch_name提交到遠程倉庫

  • 以標準時間顯示

git reflow --date=iso
70cb580 HEAD@{2020-02-25 15:14:31 +0800}: checkout: moving from master to master
不加--date=iso參數,則以標號顯示,如下
70cb580 HEAD@{0}: checkout: moving from master to master

實用技巧

  • git branch -r還可以看到已經被刪除的遠程分支

git remote prune origin同步本地倉庫和遠程倉庫信息,將遠程倉庫中已經被刪除分支的信息,同步到本地倉庫

  • 遠程分支已經被刪除,本地分支還存在

git remote prune origin同步本地倉庫和遠程倉庫信息,即可刪除本地分支
git pull -p

  • 查看遠程倉庫全部信息

git remote show origin可以看到遠程倉庫地址、遠程分支、本地分支
git remote -v 查看遠程倉庫地址

  • 根據指定commit_id創建分支

git checkout -b new_branch_name commit_id

  • 根據指定tag_name創建分支

git checkout -b new_branch_name tag_name

  • 切換到指定的tag_name

git checkout tag_name

  • 切換到指定的commit_id

git checkout commit_id

  • 合併代碼衝突詳情
git checkout A
git merge B

<<<<<<< HEAD
  A分支的內容
=======
  B分支的內容
>>>>>>> B

恢復刪除的本地和遠程分支

刪除的分支可以通過commitIdHEAD@{number}找回

  • 從代碼倉庫的activity欄查找已刪除分支的 feature_name 的操作記錄,可以查看到最後一次的commit記錄,通過如下命令進行恢復

git checkout -b feature_delete_name commitId

  • 通過git reflog查看已刪除分支的 feature_name 的操作記錄,可以查看到最後一次的commitIdHEAD@{number}記錄,通過如下命令進行恢復

git checkout -b feature_delete_name HEAD@{number}

倉庫遷移

http://wangit.wsb.cn/fe/webview.git遷移到http://gitlab.wsb.cn/fe/webview.git,包括所有分支、標籤和日誌,操作步驟如下:

  • git clone --bare http://wangit.wsb.cn/fe/webview.git
  • cd webview.git
  • git push --mirror http://gitlab.wsb.cn/fe/webview.git

參考資料

感謝閱讀,歡迎評論^-^

打賞我吧^-^

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章