git 常用命令(git rebase 和 git merge 什么时候使用)

更新所有远端分支
git remote update origin --prune
或者
git fetch

赋值代码到本地
git clone git@github.com:wild46cat/test.git

git rebase 过程
git rebase origin master
修改内容
git add .
git rebase --continue

git merge 过程
git fetch
git merge
处理冲突
git add .
git push

删除远程分支
git push origin :dev
删除本地分支

git branch -D dev

重置git HEAD

git reset origin/master

reset使用场景

一般情况是这样使用的
git reset origin/master
检查代码中的改动,哪些是需要提交了,哪些是需要还原的。
git add .
git commit -m
即可。

后记

下面说一下什么时候需要rebase。
rebase一般情况下是在这种情况下(下面是使用git branch -avv后的结果)。

master 6cd5384 [origin/master: behind 1] 1111111
* realdev f2f71cc [origin/dev: ahead 1, behind 2] cc
remotes/origin/HEAD -> origin/master
remotes/origin/dev 90249b5 ok commit
remotes/origin/master d467f55 still 2 commit

能够清晰的看到本地分支和远程分支的关系。远程分支后退两步,在前进一步,才能到达当前的HEAD。
现在有两种方式进行这样的操作。
就是merge和rebase。
先说一下这两种方式的区别。
这两种方式是这样的
如果是使用rebase的方式,相当于是更改了基点。
如果是使用pull(fetch and merge)的方式,相当于是合并最新的远程分支。
rebase方式不会产生新的commit,但是merge方式必须产生新的commit。
不然你会在commit --amend的时候遇到这样的问题
fatal: You are in the middle of a merge -- cannot amend.


master 6cd5384 [origin/master: behind 1] 1111111
* realdev b57ad4a [origin/dev: ahead 2] a new commit
remotes/origin/HEAD -> origin/master
remotes/origin/dev 90249b5 ok commit
remotes/origin/master d467f55 still 2 commit
然后使用merge的时候会出现上面的现象,也就是会产生一个新的commit,同时HEAD也就向前走了一步。


现在演示一下,如果使用rebase的方式是如何操作的
* master 10a2e5f [origin/master: ahead 1, behind 2] 1111111
realdev b57ad4a [origin/dev] a new commit
remotes/origin/HEAD -> origin/master
remotes/origin/dev b57ad4a a new commit
remotes/origin/master d467f55 still 2 commit

现在我们看master分支和刚才的情况一样,那么我们如何处理呢?
1、git rebase origin master
2、查看现在的状态,有哪些文件有改变 git status。
3、处理文件的冲突,然后使用git add . 提交所有文件。
4、git rebase --continue
5、然后就ok了。会有一个apply XXX的一个通知。
6、然后在提交就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值