iOS开发必修课#iOS#HeminWon@IT·互联网

用了两年git,rebase原来这样用

2016-08-27  本文已影响3503人  PMskill产品社区

Å目录

SourceTree简介

git merge使用教程

git rebase使用教程

一、SourceTree简介

SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,拥有可视化界面,容易上手操作。同时它也是Mercurial和Subversion版本控制系统工具。支持创建、提交、clone、push、pull 和merge等操作。

附上两图

仓库目录:

新版的工作窗口,也是走扁平化风格

基本的操作就不多说了,说下sourcetree新手偶尔会遇到的坑,就是账号设置。


sourcetree=>preferences=>network这里有账户信息,可以多账户。

第一次clone的时候账号密码如果写过可以来这里修改,windows版本好像略坑爹,

可以直接remove账号,重新clone一次。

二、git merge教程


上面有两种merge方式,一种是from log,一种是fetched,笔者一般用后者,可以直接直观和其它分支合并

合并完之后一般会有冲突,怎么处理冲突呢?

1.简单粗暴的方法:


假如我当前分支在develop分支,现在merge jack分支出现了这个冲突,

Resolve Using 'Mine',就是当前这出现冲突的整个文件以develop分支这边的为准,

也就是整个文件处理后就是和develop分支一样。

Resolve Using 'Theirs',就是以jack分支的文件为准。

这样做显然有点low

2.直接处理冲突代码

用subline打开这个冲突的文件,可以看到>>>>分割的两块代码,这两块代码就是冲突的地方咯,下面的就是develop分支的代码,这里我是在jack分支合并develop分支,所以第一块代码就是jack分支的代码,那几个很low的汉字就是我打的,制造冲突。

这样我们就可以根据我们需要来删掉那一部分或者微调,然后把三处>>>删掉,

冲突就处理完了。

三、git rebase教程

以前遇到commit写错总是使用git reset --soft回退到之前的状态,再commit后push -f强推到远程库,能够覆盖掉之前的commit。

现在想想也是很low的做法,git rebase 可以帮你搞定这个问题。

好了,随便提交了几个

工作中,我们可能不小心写错commit,例如上面那个 “测试 git rebase”我写错了,我想改一改,怎么办呢?

1.(打开terminal)

git rebase -i 233d7b3( 这个commit是在我们要修改的commit前一个)

git rebase -i 233d7b3

然后就进入下面这里:

这里就是我们熟悉的vi,按i进入insert模式,

我们是要修改,所以改成

reword 345c70f 测试 git rebase

     esc : wq 保存退出

i进入insert模式,修改commit内容,esc  : wq 保存退出。

最后害得强push

git push --force


那么我们要如何合并几个commit呢?

和上面类似,我们首先

git rebase -i f290515(我们要合并的commit的前一个)

pick 766f348 dsfdsf

squash 233d7b3 sdfdsf

squash 345c70f 测试 git rebase

我们可以这样修改  将后面两个改成squash,就是合并到第一个上去

如果没有冲突就可以看到这个界面

保存退出

最后git push -f

rebase和merge有什么区别呢

我们可以看下其他人写的

gitrebase使用笔记

http://www.jianshu.com/p/cca69cb695a6

#相关文章

给产品经理的技术书

产品经理的技术修养-序言

1、李大仁来深创业-互联网介绍

2、一杯奶茶-前后端的区别

原来写文章那么费时间,下次再写写git hotfix(分支模型(master - hotfix - develop - feature - release))
上一篇下一篇

猜你喜欢

热点阅读