git高階命令學習記錄
重寫commit歷史
將提交應用到最後一次commit中
git commit --amend -m "更新說明"
[ 有時候做了一個小的更改,不想單獨弄出來一個commit,那就可以使用此命令,直接將當前這一次commit與上一次commit合併生成一個新的commit ]
整理本地的commit(未push的commit)
git rebase -i HEAD~3
[其中 -i
表示啟用互動模式,~3
表示最近的三次commit ]
執行過上述命令之後會出現如下所示的內容,要保證第一個是pick,即採用這一次commit的內容,最終會把這三次的合併成一個commit,包含三次提交的所有內容,詳細介紹請參照官網,或者閱讀下方的說明,這裡僅做一次命令的記錄,
pick表示使用本次commit,squash或者s表示不使用本次提交
pick f7f3f6d changed my name a bit
pick 310154e updated README formatting and added blame
pick a5f4a0d added cat-file
# Rebase 710f0f8..a5f4a0d onto 710f0f8
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out
經過整理之後,儲存並推出編輯模式,會彈出合併後的提示資訊,再儲存推出,就會將所有的commit合併成一個或多個commit,可以通過 git log
檢視整理後的commit
注:如果這些commit已經push到伺服器中,則強烈建議不要手賤,除非不怕被隊友打死。
除錯功能
git bisect start
[開始進行除錯]
git bisect bad
[告訴git當前commit是bad,即出問題的commit]
git bisect good [commitid]
[在告訴git哪一個commit是good,即在哪一個commit上程式碼是正常的,然後git就會在當前的commit和good commit之間進行二分查詢,git會根據二分查詢法先切換到一個commit-a上,本地進行除錯驗證,並將驗證結果告訴git,即git bisect good/bad
,告訴git當前的commit-a是好的或者壞的,標記完之後,git會繼續根據二分查詢法切換到另一個commit上,依次類推,最終git會找出第一次出現錯誤的commit,然後我們就可以定位出現問題的commit,並進行相應的錯誤檢查]
git bisect reset
[除錯完畢之後,在執行一遍此命令,會將你帶回到正常的狀態,否則會停留在一個奇怪的分支中]
GIT遠端分支
git push origin [本地分支名稱]:[遠端分支名稱]
[將本地的指定分支推送到遠端倉庫origin上作為遠端分支,如果遠端分支已存在則會自動合併,如果不存在,則會在遠端建立一個遠端分支]
git pull origin [遠端分支]:[本地分支]
[將遠端倉庫中指定分支的內容拉取到本地的指定分支上]
git push origin --delete [遠端分支]
[刪除指定的遠端分支]
git checkout --track origin/serverfix
[以指定的遠端分支為基礎在本地建立一個與遠端分支同名的分支]
git checkout -b sf origin/serverfix
[以指定的遠端分支為基礎在本地建立一個分支(可以自己指定一個與遠端分支不同的名稱)]
git branch -u origin/serverfix
[將當前分支與指定分支建立追蹤關係]
相關文章
- (CSS學習記錄):CSS高階技巧CSS
- Git 命令使用記錄Git
- git checkout 命令詳解—— Git 學習筆記 16Git筆記
- git status 命令總結 —— Git 學習筆記 06Git筆記
- Git學習記錄v1.0Git
- Git命令實操記錄Git
- git reset 命令詳解(一)—— Git 學習筆記 07Git筆記
- git reset 命令詳解(二)—— Git 學習筆記 08Git筆記
- Git 遊戲攻略(上篇)- 基礎&高階&整理提交記錄Git遊戲
- MySQL高階學習筆記(二)MySql筆記
- Git 學習記錄之演變歷史Git
- git 學習筆錄Git
- 記錄每次更新到倉庫 —— Git 學習筆記 10Git筆記
- Git學習3 --- Git命令列基本操作Git命令列
- (一)《SQL進階教程》學習記錄--CASESQL
- Javascript高階程式設計 學習筆記JavaScript程式設計筆記
- oracle學習筆記(十一) 高階查詢Oracle筆記
- js高階 物件導向 學習筆記JS物件筆記
- redis學習筆記(詳細)——高階篇Redis筆記
- git checkout 對工作目錄的影響 —— Git 學習筆記 21Git筆記
- 【Java學習筆記(五十三)】之Git簡介,Git常用命令Java筆記Git
- Git 學習之命令詳解Git
- git學習常用命令Git
- git學習筆記Git筆記
- (二)《SQL進階教程》學習記錄--GROUP BY、PARTITION BYSQL
- Git進階命令-resetGit
- Git進階命令-revertGit
- 遠端倉庫與 fetch 命令——Git 學習筆記 20Git筆記
- redis學習——高階功能Redis
- Oracle高階培訓 第5課 學習筆記Oracle筆記
- Oracle高階培訓 第6課 學習筆記Oracle筆記
- Oracle高階培訓 第7課 學習筆記Oracle筆記
- oracle學習筆記(十七) PL/SQL高階應用Oracle筆記SQL
- 學習記錄
- Pro Git 學習筆記Git筆記
- git學習筆記 1Git筆記
- git學習筆記1Git筆記
- linux進階命令學習一Linux