Git 是一個開源的分布式版本控制系統,可以方便、高效地處理從小到大的不同的項目版本管理。
分支模型是Git最顯著的特點,開發者可以隨時創建、合并、刪除分支。對于不同的項目需求、不同的軟件版本、不同的開發階段(Develop、Feature、Hotfix、Release),可以創建多個分支進行開發,之后可以進行分支合并,這種方式使開發變得快速、簡單、安全。
比如有兩個分支:A和B,A分支中的兩個patch,我們需要同步到B分支。這時候有兩種打patch的方案:
gitcommit命令。需要注意的是:
這里介紹一下使用 git am 打patch的步驟。
使用 git log 命令查看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。
在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 命令將修改推送到遠程倉庫。
Git 常用命令
Git 操作錯誤搞砸了怎么辦,收藏這份文檔吧
使用Git的工作流程:修改、暫存、提交、推送
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态