idea取消comiit_IDEA 合并多次commit为一个?
答完以后我只想吐槽下,這種操作還是命令行里來的方便。答案里提供了3種操作流程,個人習慣第2種方式,但這個只適合壓縮最后n個commit的情況。第一種方式最佳,建議熟練掌握。第三種方式純粹蛋疼,可以不看,但對理解git會有所幫助。用命令行的話,其實還有很多方法,但都不是常規手段了,對理解和學習運用git底層原理有幫助。
---------------------------------------------------------------------------------------------------------------
IDEA里的操作方式:(這種方式對應git rebase -i,是功能最強,適用最廣泛的,掌握以后可以處理很多需求)
1.點擊菜單VCS->Git->ShowHistory
2.在History頁上點擊Log
3.例子中有4個commit(將init commit看成第1個),假如要將上面最后2個commit(第4和第3個)壓縮成1個,那么選中第2個commit(第3個的parent),右鍵菜單Copy Revision Number,把復制的commit sha1粘貼在一邊,防止粘貼板內容被后續的操作覆蓋掉
4.菜單VCS->Git->Rebase,勾上Interactive,Onto粘貼第3步中復制的commit sha1
5.在交互式rebase菜單中,將第一個選為pick,后面的都選為squash,點Start Rebasing
6.在Additional Rebase Input中編輯下壓縮以后的commit message
7.完工
另外,可以用以下命令實現:git reset --soft;
git commit
IDEA里的操作方式:
1.同上
2.同上
3.選中第2個commit,右鍵菜單Reset Current Branch to Here
4.選擇Soft,點Reset。這里選Mixed似乎也可以,IDEA中接下來的那個Commit Changes好像包含了git add的操作。
5.菜單VCS->Commit Changes,完成。
還有一種方式,利用以下命令實現:git checkout ;
git merge --squash;
git commit;
#記錄下當前的commit sha1;
git checkout ;
git reset --hard;
IDEA的操作方式:
1.同上
2.同上
3.目標同上,假設要壓縮的commit在master分支上,選中第2個commit,右鍵菜單Checkout Revision
4.菜單VCS->Git->Merge Changes,Branches to merge選擇master,勾上Squash commit,點擊Merge
5.菜單VCS->Commit Changes,選擇要commit的文件,編輯下Commit Message,點Commit。如果警告說當前在detached HEAD狀態,忽略,點Commit。
6.這時History的Log頁面上可以看到以下狀態,detached HEAD狀態可以看成是一個無名分支
7.選中detached HEAD,右鍵菜單Copy Revision Number,最好粘貼在一邊以防粘貼板被其它操作覆蓋
8.選中master所在的commit,右鍵菜單Branch 'master'->Checkout
9.菜單VCS->Git->Reset HEAD,Reset Type選擇Hard,To Commit填入第7步中復制的commit sha1,點Reset。完工。
總結
以上是生活随笔為你收集整理的idea取消comiit_IDEA 合并多次commit为一个?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 嵌入式系统串口解析二进制数_嵌入式系统B
- 下一篇: axure 调整中继器列宽_在Axure