git跳坑总结

git跳坑总结_第1张图片

要点

①Git是目前世界上最先进的分布式版本控制系统(没有之一)
版本控制
如果有一个软件,不但能自动帮我记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次改动,只需要在软件里瞄一眼就可以,岂不是很方便?
版本控制(Revision control)是一种软体工程技巧,借以在开发的过集中式和分布式
CVS及SVN都是集中式的版本控制系统,CVS作为最早的开源而且免费的集中式版本控制系统,直到现在还有不少人在用。由于CVS自身设计的问题,会造成提交文件不完整,版本库莫名其妙损坏的情况。同样是开源而且免费的SVN修正了CVS的一些稳定性问题,是目前用得最多的集中式版本库控制系统。
而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢?
①集中式
版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。
缺点:对网速要求高,不然提交文件太慢
②分布式
没有中央服务器,每个人的电脑上都是一个完整的版本库。
协作方式:各自的修改推送给对方,就可以互相看到对方的修改了。
为了交换修改方便,其实也会设立一个充当中央服务器的电脑。
没有这台也不要紧,只是不方便交换。
优点:不须联网、强大的分支管理、远程仓库

git diff  (psj.txt)   #理解为近期修改未上传吧,不理解成什么和什么比较
git diff --cached    #是暂存区(stage)和分支(master)的比较
git diff HEAD -- psj.txt #查看工作区和版本库里面最新版本的区别

②添加远程库 里面

fatal: Not a git repository (or any of the parent directories): .git
解决办法:
git init(执行这个后要再cd learngit  然后git init)

③添加远程库 里面
$ git push -u origin master出现如下问题
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.
解决办法:
原因是目录为空,其实是init的位置不对,重新cd learngit 然后git init即可

④bug分支章节 里面
(via——傲娇同学可爱多)

概览:master合并merge解决好的bug后,不要先把dev解印,先合并master,获取里面的bug方案后,再解印。解印时会有提示冲突,需手动改一次文件。
1:在  dev 下正常开发中,说有1个bug要解决,首先我需要把dev分支封存stash
2:在master下新建一个issue-101分支,解决bug,成功后
3:在master下合并issue-101
4:在 dev  下合并master,  这样才同步了里面的bug解决方案
5:解开dev封印stash pop,系统自动合并 & 提示有冲突,因为封存前dev写了东西,此时去文件里手动改冲突
6:继续开发dev,最后add,commit
7:在master下合并最后完成的dev
我觉得这种方法特别好:防止解决问题的时候修改了相同的文件,然后解印后的冲突可以手动修改。

你可能感兴趣的:(git跳坑总结)