首先来说git是什么,Git是目前世界上最先进的分布式版本控制系统。接触git是我做我的项目的时候接触的,咱们通过git来进行我的项目的文件治理,让大家分工合作。
一个货色的诞生必定是有它的特点和用途的,如果什么用的都有咱们也不会去应用它了。本人管理文件,当咱们批改后就找不到以前的版本了,要是想保留以前的文件,咱们就须要每次批改前就创立一个正本,而后这样就会有许多的正本。每次要想看本人在上个版本批改了什么,又要去对着比拟找到批改了的局部,这样很麻烦,特地是如果是几个人来批改了这个文件,你要比照的着去进行合并。因而咱们就会去应用版本控制系统,其实版本控制系统由很多,然而好的须要付费,收费的性能也不行,所以git是一个十分好的抉择。
- git的装置
git的装置十分的简略,Windows间接官网下载安装包,装置即可
装置实现后,还须要最初一步设置,在命令行输出:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
- git的基本操作
git的基本操作就是在本地仓库的操作,或者本地与近程之间的操作包含:pull下拉并合并
push推上去
checkout分支切换
add文件增加到版本库
commit文件提交到仓库
fetch下拉
clone克隆文件
- 本地仓库的建设
1.创立文件夹
2.在创立的文件夹中初始化git。应用上面的命令就能够初始化本地仓库了。
git init
3.本人就能够进行批改、删除等操作
- git的工作区和暂存区
很多人会不了解为什么要先add了,在commit,之后再应用push能力把本人的文件推到近程仓库去,其实这里就跟git的工作区和暂存区无关。工作区其实就是咱们能看见的文件目录,咱们应用add就是将工作区批改了或者新加的文件放到暂存区,当应用commit的时候就是把暂存区的文件和本地仓库进行合并,合并后暂存区的文件就会被清空。
- 本地连接近程仓库
对于近程仓库的建设就很简略了,你本人能够去GitHub上创立一个本人的近程仓库,而后在本人的电脑上配置好密钥就能够近程连贯了。咱们分为上面两种状况:
状况一:
1.首先必须要有近程仓库和本地仓库
2.在本地文件夹中进行输出连贯命令(近程仓库创立好后会有提醒的连贯命令)
状况二:从近程厂库克隆(没有建设本地厂库的状况)
1.git clone + 近程厂库地址
- 分支治理
分支治理算是git里一个很弱小的性能之一,通过分支可能更好的进行团队的开发。尽管可能主动进行合并了,然而如果你批改了这个文件并且本人的局部还没有实现,你推上去那么他人就不能失常的运行了,然而你本人又想把明天的成绩推上去,这里就能够应用分支了,两个分支是不会相互影响的,这样你能推上本人明天的成绩,他人也能失常的开发,当开发好之后再合并下来就行了。
这里我就创立了两个分支,你批改其中一个另一个是不会变动的:
Dev分支:
master分支:
这里我在Dev中减少了一个test3文件,然而master中是没有减少的,很直观的看出分支和分支之间是互不影响的。
- 分支合并
分支合并很简略,输出git merge + 被合并的分支就能够进行分支合并了。
胜利合并:
合并的时候也会发生冲突,这是git会把抵触的地位给咱们找进去:
这里就须要咱们本人去进行批改,把抵触的中央批改后,再进行合并就会合并胜利了。
- 版本回退
当咱们发现当初版本有很多的问题,曾经无奈进行批改了,咱们必须回到后面的版本去从新的写,或者是这个版本实现的性能不须要了。那么咱们要如何回退呢?
命令git reset
办法一:
git reset --hard HEAD
以后版本HEAD
上一个版本HEAD^
上上一个版本HEAD^^
上一100个版本HEAD~100
办法二:
git reset --hard + 版本号
问题:回退后,如果你间接提交会发现提交不了, 说远端做了更改须要先pull一下, 如果pull那就又回到最新版本了,相当于没回退。那该怎么办呢?
回退后提交的办法:
1.git push -f origin master :origin 近程仓库名,master 近程分支名
留神:这是强制提交,会使该版本前面的版本被删除,所以在应用该指令时应该进行备份。
2.创立新分支,删除原来的分支
3.采纳revert来操作
- revert和reset的区别:
reset是间接回到那个版本并且这个版本后的历史记录都将会被删除掉,也就是说你提交后就再也回不去了。revert呢就是撤销那个版本的代码,即对那个版本的代码进行重做,即它不是回到那个版本而是进入新的版本并且会回撤你输出的版本。上面的图就很好的反馈了二者的区别。
参考文献:
https://www.liaoxuefeng.com/w...
https://www.runoob.com/git/gi...
https://www.cnblogs.com/longt...
https://blog.csdn.net/weixin_...
https://blog.csdn.net/yxlshk/...