0

linux之git高级命令

 2 years ago
source link: https://segmentfault.com/a/1190000040940779
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

我在dev分支来rebase master分支,那么我这个dev分支就是基于master分支的一个新的节点

> git checkout dev
> git rebase master

合并这次与上次提交

> git rebase -i HEAD~2

解决远程仓库fast-forward

当我们提交代码时,可能别人已经提交过内容到远程仓库了,这时我们提交代码时就会提醒我们fast-forward,让我们先更新下代码再提交,我们可以用rebase很快的解决这个问题。

//先拉取最新代码进行rebase
> git pull --rebase origin master
// 然后再提交
> git push

本地分支与远程分支关联

将本地dev分支与远程master分支关联,这样可以在master分支中直接执行git pull进行拉取代码,不用再指定后面的分支

> git branch --set-upstream-to=origin/master dev
// 切换到master分支
> git checkout master
// 融合dev分支的内容
> git merge dev

放弃本次提交的修改

c123是通过git log进行查看的 commit id

> git checkout c123

回到此分支的上一个提交

> git reset HEAD^

回到master分支的上一个提交

> git reset master^

撤销远程分支上的内容

如果想撤销远程分支上的内容需要使用git revert,它会新创建一个提交,而新创建的提交的状态正好等于你上一个版本的状态,假如我们现在的版本是c2,它上一个版本就是c1,那么执行完这个命令之后,就会新创建一个提交 为 c1’,它与c1的内容一致,我们将这它推送到远程端,别人更新之后就可以了

> git revert HEAD^

因为分支是很容易被改变,为了防止以后不能返回,所以可以打个tag,做个回滚记录点.

c123 为提交记录的id

> git tag MyTagName c123

原文链接:https://rumenz.com/rumenbiji/...
微信公众号:入门小站


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK