虽然 Git 是一个强大的工具,但是我觉得大部分人都会同意我说的:它也可以是一个……噩梦!我一直觉得,使用 Git 的时候把操作过程在脑海里视觉化会非常有用:当我执行某个命令的时候,分支之间是如何交互的?又是如何影响提交历史的?
大家在使用git的过程当中有闯过祸吗?我闯过,我闯的第一个祸就是使用git rebase造成的,虽然后来最终还是解决了,但是还是给我吓得不轻。当时的事情是这样的。我们来看下这张图:简单解释一下这张图当中的内容,C1节点是所有分支的最小公共祖先。
git rebase和git merge是在日常开发中常用的用于分支合并的命令,也是非常容易误用的两个命令。本文将通过图文的方式去详解二者之间的区别。git mergegit merge会为本次的合并过程生成一条新的commit,并将该commit添加到目的分支上。
Git 的版本控制是分布式的,这意味着当多人工作在同一个项目或者同一个分支上时,每个人的系统之都包含了这个项目或者分支的全部信息,即使此时中央 git 服务器出现不可修复的故障,仍可以基于任何一个已经检出该项目的电脑来使用本地的 git 记录来进行覆盖还原。
优质文章,第一时间送达!来源:机器之心git merge、git rebase、git reset、git revert、git fetch、git pull、git reflog……你知道这些 git 命令执行的究竟是什么任务吗?如果你还有些分不清楚,那千万不能错过这篇文章。