Idea中Git使用:版本回退、只merge某个commit

1.多功能开发Git使用规范

项目一般有如下几个常见远程分支:
release---项目发布提测分支、jhd---属于自己的远程分支

背景:
如果自己项目中先后被分配了功能A、B、C。但是A、B、C这三个功能,并不是一起发布上线,而是一个一个上线发布。

为了保证功能互不影响,同时更好对单个功能提测-发布-上线。
1>一个功能,对应一个本地功能分支
例如:feature-A、feature-B、feature-C
命令:
git checkout -b feature-A jhd
git checkout -b feature-B jhd
git checkout -b feature-C jhd

2>本地功能分支 = 单个功能代码 + 最新的release分支代码
开发过程中,不时合并他人已提交至release分支的代码。
对应命令:git pull origin release

3>只有发布计划确认后,才能push功能代码-到-自己远程分支、再merge到release分支
push命令:git push feature-x origin/jhd

注意:为什么只有发布计划确认后,才去push、merge?*
答:防止不需要上线的代码,发布到生产。导致生产事故。

2.本地/远程分支---版本回退

<1>本地分支---版本回退
Git允许本地分支版本历史之间穿梭,
使用命令git reset --hard commit_id

<2>远程分支---版本回退
当对应本地分支使用git reset 回退版本后,
直接在本地执行命令git push -f,便可以让本地分支关联的远程分支也对应回退版本。

<3>查看提交历史---回到过去
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
或者使用输出提交历史信息更为简洁的git log --pretty=oneline

<4>查看命令历史---去往未来
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

3.git命令:pull、merge、push区别

1>pull
远程分支---pull--->本地分支

2>merge
本地分支<---merge---远程分支
或者
远程分支<---merge---本地分支

3>push
本地分支---push--->远程分支

4.只merge某个commit

如果我们只merge某个commit,而不是merger整个分支代码。
可以使用命令:git cherry-pick commit_id.
commit_id就是要合并到分支中的,单纯的功能代码。

5.文章参考

1.廖雪峰---Git版本回退
2.git cherry-pick使用和扩展

你可能感兴趣的:(Idea中Git使用:版本回退、只merge某个commit)