rhel6.5-Git(分布式版本控制系统)
一.git
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。git是为了帮助Linux内核开发而开发的一个开放源码的版本控制软件。 CVS及SVN都是集中式的版本控制系统:版本库是集中存放在中央服务器的,要先从中央服务器取得最新的版本,处理完自己的工作后,再把自己处理的工作推送给中央服务器。Git是分布式版本控制系统:分布式版本控制系统没有中央服务器,每个人的电脑上都是一个完整的版本库,开发者可以提交任务到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。
二.git的安装部署
1.git的安装(由于git早已集成到linux中,直接yum安装即可)
2.创建版本库
(1)在用户家目录下创建目录demo做为版本库的存放位置
(2)在demo目录下执行git init初始化这个目录,此时版本库就创建完毕,git就可以进行管理(新建的仓库是空的仓库,.git隐藏目录(是git来跟踪管理版本库的,不能随便改动))
3.git常用命令
(1)Git是分布式版本控制系统,使用了全局的配置--global添加姓名和邮箱,就能清楚的知道这个任务的来源,这个配置文件在用户家目录下的.gitconfig文件里
git config --global user.name "name"
git config --global user.email "email"
(2)git status ##查看仓库当前的状态(可见redame.txt这个文件还没有添加到暂存区,没有被跟踪)
git add 提交文件到暂存区后,再次查看仓库状态(redame.txt这个文件修改了将要被提交)
(3)git add ##把文件添加到仓库
(4)git commit ##把添加到仓库的文件全都提交到仓库,“-m表示本次提交的说明”(一个文件被修改,插入了一行内容,此时用git status查看仓库状态发现没有可提交的,因为git commit已经一次把所有添加到仓库的文件全部提交)
(5)git diff ##查看对文件做了什么修改
(6)git log ##查看历史记录
(7)git log --pretty=oneline ##简化记录
(8)git reset --hard HEAD^ ##回退到上一个版本
(9)git reflog ##用来记录你的每一次命令(会显示commit ID,git reset会通过这个ID回到指定的版本)
(10)git reset --hard commit ID ##通过commit ID回到指定的版本
(11)git所有的提交记录存放在.git/logs 文件中
(12)撤销修改
git checkout -- file ##可以丢弃工作区的修改,让这个文件回到最近一次git commit或git add时的状态
(13)删除文件
删除文件之后也需要提交到版本库中,否则版本库和工作区就不同步,就算是误删也可以撤销
(14)git status -s ##查看文件当前状态,随时掌握文件所处的状态
4.git工作区和暂存区的区分
git add实际上就是把文件修改添加到暂存区;git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。创建Git版本库时,Git自动为我们创建了唯一一个master分支,git commit就是往master分支上提交更改。需要提交的文件修改都放到暂存区,一次性提交暂存区的所有修改。
三.远程仓库
1.添加远程仓库
(1)注册登陆github,创建新的仓库(这里我自己创建了仓库进行测试,公共的仓库,不然要收费)
分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在
(2)通过ssh远程连接仓库(操作步骤github已经给出)
(3)连接远程仓库(这里不能解析主机名是因为没有把本地的ssh的公钥添加到github)
git remote add origin [email protected]:path/repo-name.git
git push -u origin master ##第一次推送master分支的所有内容加“-u”
把本地的公钥添加到github
在github的设置中添加ssh-key
重新推送本地仓库
(4)测试(把本地的文件推送到github,如果本地和github一致就表示连接仓库成功)
查看github的demo仓库(之前创建的,readme.txt文件内容和本地一致)
2.从远程仓库克隆
(1)创建测试用的仓库,并在github上面初始化(Initialize this repository with a README ##在github上面自动初始化)
(2)克隆远程仓库到本地
git clone [email protected]:server-name/test.git
克隆一个仓库,必须知道仓库的地址,然后使用git clone命令克隆
(3)因为添加远程库的时候已经创建了ssh连接,直接使用即可
(4)测试(本地创建文件提交到仓库,推送到github的远程仓库)
在github的test仓库中查看
git分布式版本控制系统的确是很大程度方便了开发的工作,也有很多强大的功能,参考了廖雪峰的教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000