一个项目在实际的开发过程中,需要协同合作,故项目组需要对项目进行版本控制,便于协作。今天小编就给大家介绍一款世界上最先进的的分布式版本控制系统(没有之一)——git。
安装教程
1.git install
https://git-scm.com/downloads
2.git config
3.详细git教程
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013743256916071d599b3aed534aaab22a0db6c4e07fd0000
基础操作
1.git init
2.git add
将文件加到仓库中
3.git commit -m
将文件提交到仓库中,并添加修改记录
4.git status
实时掌握工作区状态,
5.git diff
使用前可用git diff 查看版本差异(查看修改内容)
6.git log
查看由最近到最远的提交日志;(查看历史)
加上--pretty=oneline可缩减输出信息。
版本回退
在git中,用HEAD表示当前版本即最新提交的版本,上个版本为HEAD^,上上个版本为HEAD^^,当然往上100个版本为HEAD~100.
1.git reset --hard HEAD^
将当前版本A回退到上一个版本B
2.git reset --hard
若在1中退回上个版本B后想追回当前版本A,指定A版本的commit id 的前几位就可以追回。
PS:当前git未关闭情况下可使用此方法追回
3.若电脑关闭,重新打开时无法查看git log
可采用git reflog记录每一次命令(可返回未来版本),即可查看命令历史,以便要回到未来的版本
工作区和暂存区
lgit文件夹就是一个工作区(Working Directory)
.git(隐藏目录即版本库:Repository)
git的版本库存了很多东西,其中最重要的就是stage(或者index)的暂存区,还要git为我们自动创建的第一个分支master,以及指向master的一个指针HEAD;
前文讲到的git add指的是将文件添加到暂存区(index/stage)中, 然后通过git commit提交更改,实际上是将暂存区中的所有内容提交到当前分支(此处为master).
由于第一次创建git版本库时,git自动为我们创建了唯一一个分支master,所以现在git commit就是往master分支上提交更改。
管理修改
git的优点:
git跟踪并管理的是修改,而非文件。
即每次修改后,需要先git add(添加到暂存区),再git commit才能提交到分支中,且可以多次 add 一次性提交多个修改。(可用git diff查看版本之间的不同(未git commit前使用))
撤回修改
当文件修改后,需要撤回修改时,可用
git checkout 可将文件恢复至上一个版本的状态:
1、自修改后未add到暂存区,则撤销修改至和版本库一模一样的状态。
2、修改后add 到暂存区后,又做修改,则撤销至和暂存区一模一样的状态。
总之git checkout -- 可以让文件回到最近一次git commit 或git add的状态。(注:-- 必须有,否则将变为切换至另一分支的命令)
当修改后的文件并add到暂存区时,可用git reset HEAD 将暂存区的修改撤销掉(unstage),重新放回工作区。
1.git reset HEAD
将在暂存区的修改撤销至工作区
2.git checkout --
再通过git checkout 将工作区的修改撤销至前一个版本。
git reset
既可以退回版本,又可以将暂存区的修改退回到工作区。当使用HEAD时,表示最新版本。
删除文件
在git中,删除也是一个修改操作。
删除了文件test.txt:
1、删除
从版本库中删除,即git rm -- ,若提交到分支中,需要git commit一下,则文件就从版本库中删除了。
2、恢复
该情形是误删除了某文件,但在版本库中仍存在,所以可以使用上节git checkout -- 将误删除文件恢复到最新版本。
注:命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
领取专属 10元无门槛券
私享最新 技术干货