git是什么?
git是一个分布式版本控制系统。分成两部分来说,分布式和版本控制系统。
什么是版本控制系统?
小明同学写了一份论文,论文题目是《袁华的一生》。导师觉得文章立意不够新颖。于是小明加班把论文改为《我的区长父亲》。导师觉得题目比较新颖但是内容不够充实,于是小明加班把论文改为《我的区长父亲》最终版,导师觉得排版不够好,于是小明加班把论文呢改为《我的区长父亲》最最终版,导师觉得。。。。,于是小明。。。。《我的区长父亲》最最最最最终版。小明为了保存每一个版本的论文,搞了一堆文章,到最后自己都记不住到底哪个版本的袁华下海捕鱼了。版本控制系统应运而生。git可以让你轻松管理不同版本的论文,代码,等等。git可以说是现如今最流行的版本控制系统,没有之一。
git解决这个问题的方法就是建立一个git仓库。把各个版本的《我的区长父亲》都保存起来。步步高点读机,想要哪里点哪里。妈妈再也不用担心我的学习了。
什么是分布式?
分布式的概念由来已久,从分布式计算到分布式应用。不用管那么多,此处的分布式是指将任务分布给多人。然后多人协同共同完成开发。
小明论文投稿后,编辑给出反馈意见:论文题目透露个人信息,疑似不正当竞争。小明赶紧把论文又改成《袁华的一生》。由于时间紧张。小明请来小红、小李帮助完成论文《袁华的一生》的撰写。大家共同协作完成论文就是分布式协作的意思啦。
如何进行版本控制呢?
首先下载git。在git中首先要配置个人信息。
这个是必须要配置的,因为git严格记录每个人的修改信息,是谁修改的,修改的内容是什么。所以git要求首先配置个人信息。
git config --global user.name "werdery"
git config --global user.email "werdery.mail.com"
配置完个人信息,就可以使用git版本控制了。
在本地创建文件夹,并且初始化为git仓库。
mkdir hello
cd hello
git init
git init 后可以看到hello目录下的隐藏文件夹.git。
这个就是我们的仓库。用以保存我们的各个版本的文档和文档信息(什么时候,谁修改的)。当然不推荐进入.git文件夹更改里面的东西。具体的操作可以通过git命令进行操作。
这个时候可以通过git status查看git状态
上述显示信息为:在master分支上还没有commits。 commits是指版本库,一个commit(名词)就是一个版本,你可以通过一个commit(动词)创建一个commit(名词)。没有能够用来commit(动词)的。你可以创建或者复制文件并且使用git add 来跟踪这些文件。 他说的跟踪的意思就是使用版本控制器来管理文件。因为我们hello文件夹下还没有创建由git管理的文件。所以他推荐我们先创建文件,然后让git管理这些文件。
创建就创建谁怕谁!在hello目录下创建README.md文件并输入“hello 袁华”,然后保存退出。使用他推荐的git add README.md。执行完git add后,git就开始跟踪你每一次对文件的修改。继续使用git status查看git状态。
上述显示信息为:在master分支上没有commits。创建的README.md新文件,可以用来commit。也可以使用git rm --cached README.md 把文件变为非stage状态。
stage一般翻译为暂缓区。是文件被提交到版本库之前的一种状态。前面使用git add 就是把README.md加入到暂缓区了。上面显示的信息就是你可以把处在stage的README.md提交到版本库,也可以把它退为非stage状态,也就是版本库不再跟踪文件的改动。
然后我们把刚刚加入stage中的文件加入到仓库中
git commit -m "update README.md"
commit就是提交到版本仓库,-m后指定关于这个版本库的说明。
这个时候继续git status
上面显示的信息:**工作目录干净了,没有可以提交的了。**到此为止将文件进行版本控制的部分就结束了。哦对了,再看一张图。
这张图使用git log命令,来查看版本库中的版本。commit后的一大串数字是这个版本的标识号。可以通过这个标识号来回到到你想回到的版本。
如何回到之前版本?
git checkout be0b3c8
使用上述命令就可以回到commit 为be0b3c8状态。
可是be0b3c8写着好麻烦啊,git提供了tag的方式。
git tag v1.0 be9b3c8
git checkout v1.0
上述第一条指令相当于给这个版本打了一个标签,然后就可以通过v1.0来操作这个版本库了。
git的神器
git diff v1.0 v2.0
上述指令可以比较两个版本库的差异。
以下内容待整理
如果需要提交到其他分支,需要在这一步之前创建分支
git branch myDev
然后切换到该分支
git checkout myDev
可以将上面两句合为一句
git checkout -b myDev
把文件提交到git服务器上
首先要关联到远端一个库
git remote add origin git@github.com:izrail/hello.git
git push origin master#默认提交到远程库master上
从服务器上克隆一个git仓库:
1.首先fork该项目
2.然后把该项目克隆到本地库,克隆命令:
git clone git@github.com:izrail/hello.git