2、我们基于trunk分支做开发,并提交多次代码到trunk分支
下面我们使用TortoiseGit客户端,使用git的cherry pick 操作将提交到trunk分支的代码自动merge代码到ep-new分支
具体过程:
1、我们先切换到ep-new分支
2、右键,show log
3、切换到trunk分支的log,选择时间范围和自己的名称过滤将要merge到ep-new的提交
4、选择需要cherry pick的提交
5、点击continue按钮继续,会自动merge,选择的提交,如果遇到冲突,要解决下冲突(这个过程中,可能有各种小问题,注意解决)
6、完了之后,show Reflog,
查看刚刚的自动merge和commit的cherry-pick操作,选择刚刚cherry-pick操作的前一项,选中,右键Reset "ep-new" to this 选项,
默认选项,点击OK,
现在你在trunk分支的所有提交,都在本地,你只需要再commit到ep-new分支,并push到远端服务器发起merge请求,就完了。
这样做,比手动查看log,查看比较自己的提交并merge代码更靠谱,效率高,还不会有遗漏,除非你在第四步选择时有遗漏。
git
remote add ab7 http://
git
lab.eisoo.com/AnyBack/apolo/Apollo.
git
git
fetch ab7
git
checkout -b hw1030 ab7/Longter/Anybackup-7.0.7-Huawei1030-60190205
git
push origin hw1030:1030
git
push -u origin hw1030
1 新增远程仓储(后面地址为代码主线的完整地址),命名为ab7(名字自己随意取)
2.这个命令将远程主机ab7的更新全部取回本地
3.在本地创建名称为hw1030(名字自取)
Git
介绍
分布式 :
Git
版本控制系统是
一个
分布式的系统, 是用来保存工程源代码历史状态的命令行工具;
保存点 :
Git
的保存点可以追踪源码中的文件, 并能得到某
一个
时间点上的整个工程项目额状态; 可以在该保存点将多人
提交
的源码合并, 也可以会退到某
一个
保存点上;
Git
离线
操作
性 :
Git
可以离线进行代码
提交
, 因此它称得上是完全的分布式处理,
Git
所有的
操作
不需要在线进行; 这意味着
Git
的速度要比SVN等工具快得多, 因为SVN等工具需要在线时才能
操作
, 如果网络环境不好,
提交
代码会变得非常缓慢;
Git
基于快照 : SVN等老式版本控制工具是将
提交
点保存成补丁文件,
Git
提
一条线是
一个
分支
。
比如c2,c3,这是
两次
提交
,在
同一个
分支
上。
此时需求是:要把绿色
分支
的C3,蓝色
分支
的C5,紫色
分支
的C7合到一条新的
分支
上。
此时就需要
cherry
-
pic
k命令了。
首先切到master
分支
,然后输入
git
cherry
-
pic
k C3 C5 C7
项目版本管理使用
git
,在实际工作当中经常会遇到计划赶不上变化,比如某几个改动要提前上线,或者某几个改动这次不发布。如果是时间间隔短,改动量小以及个人记忆强大的基础上没什么事,弄个个新
分支
把需要的弄出来,或者屏蔽掉。但是如果上面三个条件有
一个
不满足,其实都特别难受。
我们能不能把我们需要修改的commit也
提交
到别的
分支
,这样我们只需要根据我们改动的
提交
,而不是
一个
文件
一个
文件的去修改。
实际上是有的,这个
操作
叫做
cherry
-
pic
k
(1)
cherry
-
pic
k 命令
这里如果你是忠实的命令行
操作
大牛,
一般项目在开发阶段,都会创建多个
分支
,用于不同开发阶段的版本发布如:master、dev等,之所以会有这种多
分支
情况,就是项目在不同的开发阶段,新的业务会对之前业务造成影响,所以建多个
分支
用来发布不同的迭代版本,直至
一个
迭代完成测试、上线。
如果使用
git
,相信大家比较多的使用
merge
,对于rebase则少有陌生。相信刚使用
git
不久的同学会有
一个
困惑,经常使用
merge
会造成破窗效应,查阅log时会掺杂了大量无用的小
提交
,起初也对此习以为常,毕竟svn就是这样。
使用rebase其中的
一个
好处就是能够将多个commit合并为一次
提交
,但是网络上比较多的都是基于命令行,今天记录一下总结的基于小乌龟
Git
的
merge
/rebase
提交
管理流程。
理解
git
中上游下游概念
上游下游是一种相对概念,相对于remote/master,master就是
例如要将A
分支
的
一个
commit合并到B
分支
:首先切换到A
分支
git
checkout A
git
log找出要合并的commit ID :例如0128660c08e325d410cb845616af355c0c19c6fe然后切换到B
分支
上
git
checkout B
git
cherry
-
pic
k 0128660c08e325d410cb845616af355c0c19c6fe然后就将A
分支
的某...
1.
分支
合并
如下:两条从公共节点分叉的
分支
,分别有了新的
提交
,当使用
git
merge
合并
分支
时,会在当前master
分支
commit基础上应用to
pic
在公共节点以后的
提交
,并生成一条新的
提交
记录合并信息。
A---B---C to
pic
D---E---F---G master
=====>
A---B---C to
pic
/ \
D-...