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

更新所有远端分支

git remote update origin --prune
或者
git fetch

赋值代码到本地

git clone [email protected]: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、然后在提交就可以了。

猜你喜欢

转载自blog.csdn.net/wild46cat/article/details/80147935
今日推荐