Git拆分commit提交
如果感覺某一次提交的內容較多,可以將它們拆分為多個提交。
首先看一下提交歷史記錄,程式碼如下:
[Shell] 純文字檢視 複製程式碼$ git log --oneline
程式碼執行效果截圖如下:
在e222850提交中,新增了兩個檔案one.txt和two.txt,下面將這兩個檔案拆分出來,然後分別進行提交。
首先執行如下程式碼:
[Shell] 純文字檢視 複製程式碼$ git rebase -i b0aa963
特別說明:b0aa963用來確定commit範圍,表示從此提交開始到當前的提交(不包括b0aa963提交)。
執行此命令後,彈出VIM編輯器,關於編輯器的基本操作參閱git Vim編輯器輸入內容、儲存和退出操作一章節。
截圖如下:
截圖說明:
(1).頂部的commit提交排列順序與git log排列相反,最先提交的在最上面。
(2).前面的pick表示保留此次commit提交不做修改。
(3).底部給出所有可用的命令。
將e222850提交前面的pick修改為edit,那麼當Rebase執行到這一行的時候會停下來:
儲存並退出,這時候HEAD指標指向e222850處:
然後執行如下命令:
[Shell] 純文字檢視 複製程式碼$ git reset HEAD^
這樣的話,e222850中新增的兩個檔案在工作區相當於新建立(處於未跟蹤狀態)。
關於reset命令可以參閱git reset用法詳解一章節。
然後檢視一下當前狀態:
[Shell] 純文字檢視 複製程式碼$ git status
程式碼執行效果截圖如下:
然後使用add和commit命令分別將這兩個檔案單獨提交:
[Shell] 純文字檢視 複製程式碼$ git add one.txt
將one.txt檔案加入到暫存區。
[Shell] 純文字檢視 複製程式碼$ git commit -m "add one.txt"
使用commit命令完成一次提交。
[Shell] 純文字檢視 複製程式碼$ git add two.txt
將two.txt檔案加入到暫存區。
[Shell] 純文字檢視 複製程式碼$ git commit -m "two.txt"
使用commit命令完成一次提交。
現在仍處於Rebase狀態,所以要讓它繼續執行完畢,程式碼如下:
[Shell] 純文字檢視 複製程式碼$ git rebase --continue
程式碼執行效果截圖如下:
現在檢視一下提交歷史,程式碼如下:
[Shell] 純文字檢視 複製程式碼$ git log --oneline
程式碼執行效果截圖:
原來的提交物件e222850已經被拆分為兩個。
相關文章
- git commit提交空內容GitMIT
- Git修改commit提交資訊GitMIT
- git 修改已有commit的提交日期GitMIT
- Git 實用操作:撤銷 Commit 提交GitMIT
- Git 修改已提交的commit註釋GitMIT
- git commit未能提交指定檔案原因GitMIT
- Git基於指定commit提交建立分支GitMIT
- git撤銷某一次commit提交GitMIT
- 優雅的提交你的 Git Commit MessageGitMIT
- git回退到某個commit git回滾到某個提交GitMIT
- Git提交規範中,常見的commit型別GitMIT型別
- Vscode中新功能Commit Graph能提升Git提交效能VSCodeMITGit
- git提交失敗——running pre-commit hook: lint-stagedGitMITHook
- git commit後如何取消commitGitMIT
- git撤銷已經提交到遠端伺服器的commitGit伺服器MIT
- git如何撤銷已經提交到遠端的commit資訊GitMIT
- git commit --amendGitMIT
- IDEA (任意 JetBrains IDE)拆分先前 commitIdeaAIMIT
- git提交(commit)前的檢驗和其他一些實用操作GitMIT
- Git commit 之後,想撤銷 commitGitMIT
- git commit 規範GitMIT
- Git commit規範GitMIT
- 關於Git commitGitMIT
- Git——提交Git
- git 修改 commit 資訊GitMIT
- Git commit message 規範GitMIT
- 撤銷 git commit --amendGitMIT
- Git Commit 標準化GitMIT
- git修改commit註釋GitMIT
- Git插入新的commitGitMIT
- Git刪除指定commitGitMIT
- 撤銷 git commit –amendGitMIT
- Maven 專案獲取 Git 的提交分支、commit id、構建時間等資訊MavenGitMIT
- 三階段提交(Three-phase commit)MIT
- git 工作流和git commit規範GitMIT
- git分支管理及git commit message規範GitMIT
- [Git CLion] 規範Commit格式GitMIT
- Git 合併指定的commitGitMIT