rebase:重设基础点

将当前的branch的基础点移动到目标分支。 这么做的好处是主干master明确。

git rebase <目标分支>

不过rebase之后master并没有跟随过去,需要再合并一下:

git checkout master
git merge <刚刚的分支>

这样master就和分支合并了。

刚刚的提交提错了,想要修改怎么办?

文件修改好之后使用 --amend,这会产生一个新的commit并替换掉最后一个commit

git add 文件
git commit --amend -m 说明

错了的是倒数第二个commit,不是最后一个commit,还能修改吗?

当然可以,这里可使用交互式rebase, 参数:-i

git rebase -i HEAD^^

这里的^^意思是后退几个commit,数量为^的数量,也可以写成~2,数字代表后退的数量。

回车之后,我们发现进入到了一个可编辑的页面,值得注意的是,上面的commit排序是倒叙的,我们可以看到每个commit前面有一个pick,我们按i进入编辑,把想要重新修改的commit前面的pick改成edit,退出界面之后我们可以看到状态就是在当前的commit上了,修改完成之后时候使用--amend提交,成功之后我们可以通过git rebase --continue来跳过不需要修改的commit,整个过程就结束了。

diff:对比

用来对比修改。

git diff //对比工作区和暂存区
git diff --staged // 对比暂存区和上一次提交
git diff HEAD // 对比工作区和上一次提交

想要暂存工作区?

暂存并清空工作目录。

git stash

Warning

-git stash并不会暂存你未追踪的文件,假如说你新建了一个文件,你还没有来得及add就stash,这个文件并不会存起来,想要把这些文件一起暂存使用-u。
-恢复文件请使用git stash pop命令。

想要回滚commit?

reset可以重置HEADbranch的位置

  git reset <分支名或SHA-1>
❤️ 转载文章请注明出处,谢谢!❤️