git相关

1.checkout与reset的区别:

checkout是从index缓存区刷到工作区,如果已经commit,就先用reset--mixed,再用checkout,或者直接用reset--hard,不加--版本号,就是切换分支。

reset有三种方式:soft,mixed,hard;

hard:调整head,刷到index,index刷到工作区;mixed:调整head,刷到index;soft:index刷到工作区。

2.reset和revert的区别:

reset是head往后移,revert是往前移;

reset会删掉提交记录,revert相当于是重新commit一个新的,用来抵消之前的提交;

revert有冲突的话会提醒合并代码。

如果是push的版本,不应该进行reset了,因为可能把别人的代码reset掉。

在公共分支,推荐使用revert,个人分支可以使用reset。

3.rebase和merge的区别:rebase一般是分支把master的代码同步进来,而merge一般是master把分支的代码合进来,merge会生成一个新的提交记录。

推荐使用rebase,因为merge后,想回退版本很麻烦,因为merge会把分支的所有提交合并成一个新的commit。

原文地址:https://www.cnblogs.com/3chi/p/10767140.html