案例1: git命令合并自己提交的多次Log记录
一次commit的时候,发现有段代码没写好,就补了一句以后再commit了一遍,这样就有两条commit语句了。应该把之后补的那条合并到前面去。这时候就需要git rebase语句:
git rebase -i HEAD~2
进入编辑界面,按i进入insert模式,将pick修改成fixup(保留应用,丢弃commit描述)或者squash(保留应用,合并commit描述)等关键字。
注意不能将第一条也就是最近的一条commit给pickup或者squash,这样它就找不到之前的commit进行合并,然后就会报出错误。
案例2:修改commit 日志 log
步骤1:git commit --amend
步骤2:修改描述,shift + insert 进行粘贴
步骤3:git mm upload
案例3:fork的个人分支同步主仓代码并提交代码
step1:
git remote add upstream ssh://git@szv-y.codehub.huawei.com:2222/DCP_DCPPlatform_Galaxy_ICP_MidWare/HPFS_HPF.git
git remote -v
git fetch upstream
git tag | grep xx 查看是否有需要的
step2:
通过:git branch <new-branch-name> <tag-name> 会根据tag创建新的分支。
例如:git branch newbranch v1.0 . 会以tag v1.0创建新的分支newbranch。
可以通过git checkout newbranch 切换到新的分支。
step3:
通过 git push origin newbranch 把本地创建的分支提交到远程仓库。
现在远程仓库也会有新创建的分支了。
实际例子:
git clone ssh://git@szv-y.codehub.huawei.com:2222/c00602537/HPFS_MODDEF.git
git remote add upstream ssh://git@szv-y.codehub.huawei.com:2222/DCP_DCPPlatform_Galaxy_ICP_MidWare/HPFS_MODDEF.git
【git remote add upstream ssh://git@szv-y.codehub.huawei.com:2222/DCP_DCPPlatform_Galaxy_ICP_MidWare/HPFS_HPF.git】
git fetch upstream
git branch br_soho_B083 tag_HPF2_1.0.0.B066_001
git checkout origin br_soho_B083
git push origin br_soho_B083
案例4:通过同步分支和cherry-pick消除merge log
git 配置个人仓和 组件仓
git clone 个人仓库
git remote add base ssh://git@szv-y.codehub.huawei.com:2222/DCP_DCPPlatform_Galaxy_ICP_MidWare/HPFS_HPF.git
本地仓库对应远端两个仓库
git remote -v查看
每次开发新特性,基于tag新起一个分支
先拉取组件仓的代码和tag信息
git fetch base
新建分支
git checkout tag_HPF2_1.0.0.B067_001
git switch -c HPF067
在HPF067分支上完成特性开发
对新开发的代码进行rebase, 合并到一个commit, git log记住commit点 xxx
回到develop分支,并更新到和组件仓最新
【其中develop分支是通过 git checkout -b develop base/br_YunShan_Lite_V1R22C00_proj_develop 分支创建的】
git pull base br_YunShan_Lite_V1R22C00_proj_develop
把HPF067上的commit cherry-pick过来
git cherry-pick xxx
然后把本地的develop提交到个人分支(对应origin 的br_YunShan_Lite_V1R22C00_proj_develop)
git push origin develop:br_YunShan_Lite_V1R22C00_proj_develop 【-- force 可以强制覆盖分支和对应log记录】
案例5:提交代码
git status 查看修改代码状态
git add . 添加所有修改的文件
git commit -m 【添加消息进行提交】 如果没有m参数想保存退出,可以ESC --> 退出编辑状态;接着,连续按两次大写字母键Z
git log 查看合入记录
git push origin br_soho_B083 推到远端分支