gitcommit命令,commit分拆多個 git_Git操作:在多個分支之間,使用git am打patch和同步分支

 2023-10-08 阅读 17 评论 0

摘要:Git 是一個開源的分布式版本控制系統,可以方便、高效地處理從小到大的不同的項目版本管理。分支模型是Git最顯著的特點,開發者可以隨時創建、合并、刪除分支。對于不同的項目需求、不同的軟件版本、不同的開發階段(Develop、Feature、Hotfix、Release),可
a25f6429bee3e217235b3ce29c3a7df4.png

Git 是一個開源的分布式版本控制系統,可以方便、高效地處理從小到大的不同的項目版本管理。

分支模型是Git最顯著的特點,開發者可以隨時創建、合并、刪除分支。對于不同的項目需求、不同的軟件版本、不同的開發階段(Develop、Feature、Hotfix、Release),可以創建多個分支進行開發,之后可以進行分支合并,這種方式使開發變得快速、簡單、安全。

f5c21514a311016cc57869f713a23564.png

Git的分支模型

比如有兩個分支:A和B,A分支中的兩個patch,我們需要同步到B分支。這時候有兩種打patch的方案:

  • 在A分支用 git diff 生成.diff文件,然后在B分支用 git apply 打patch。
  • 在A分支用 git format-patch 生成.patch 文件,然后在B分支用 git am 打patch。

gitcommit命令。需要注意的是:

  • .diff 文件只是記錄文件改變的內容,沒有commit的提交信息,因此用 git apply 打上patch之后,還需要再重新commit。
  • .patch文件不僅記錄文件改變的內容,也有commit的提交信息(每個commit對應一個patch文件),因此可以把提交信息也都打進去。
db6d52b8267a58d5cafd104dde43259f.png

這里介紹一下使用 git am 打patch的步驟。

1、查看patch的提交信息

使用 git log 命令查看patch的提交信息,如下圖所示。

2b9d5e781d3e5608728c275d50904094.png

2、生成所選的patch

在A分支使用 git format-patch 命令生成相關patch,根據需要,有不同的patch生成方法。

git commit amend?生成最近1次commit的patch:

git format-patch HEAD^

生成最近2次commit的patch:

git format-patch HEAD^^

git commitid?生成單個提交的patch:

git format-patch [commit-id] -1

生成某次提交(含)之前的n次提交:

git format-patch [commit-id] -n

git 合并多次commit,生成某次提交(不含)之后的所有提交:

git format-patch [commit-id]

使用 git format-patch 命令生成相關patch,每個patch都是一個單獨的文件,并采用編號+提交信息的方式命名,如:0001-Feature-hello-world.patch。

3、打patch

在B分支用 git am *.patch 命令打上所有patch。

git amend、若沒有任何問題,git am 會直接將 patch 的所有信息都打上去,使用 git log 可以查看是否成功。

但意外才是常態!

下面幾個命令在遇到問題時會經常使用。

檢查patch修改的文件:

git 回退commit?git apply --stat xxxx.patch

檢查patch能否打成功:

git apply --check xxxx.patch

若這條命令沒有任何輸出,則代表可以直接打成功;若有沖突,則會輸出error信息。

git rebase,有沖突沒關系,使用下面命令強行合入 patch 中不沖突的代碼,同時保留沖突的部分:

git apply --reject xxxx.patch

使用上面的命令,會把有沖突的部分保存為 .rej文件,然后手動編輯發生沖突的code文件,解決沖突后,刪除 .rej文件,通過 git add 命令將相關文件添加到暫存區中。

告訴git沖突解決,繼續打patch:

git am --resolved

若需要跳過有沖突的patch,則使用:

git am --skip

若中途不想打patch了,恢復原狀,則使用:

git am --abort

上面就是整個流程,最后通過 git log 命令來查看是否成功,確認沒問題后使用 git push 命令將修改推送到遠程倉庫。

609a16f7bef064fb8792dbce12949a62.png

相關閱讀

Git 常用命令

Git 操作錯誤搞砸了怎么辦,收藏這份文檔吧

使用Git的工作流程:修改、暫存、提交、推送

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/129021.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息