git工具使用
(1)git简介
<1>Git特点:速度、简单的设计、对非线性开发模式的强力支持(允许成千上万个并行开发的分支)、完全分布式、有能力高效管理类似linux内核一样的超大规模项目(速度和数据量)。
<2>自诞生于2005年以来,Git日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。他的速度飞快,及其适合管理大项目,有着令人难以置信的非线性分支管理系统。
Git必看秘籍:https://git-scm.com/book/zh/v2
<3>Git有三种状态:已提交(committed)、已修改(modified)和已暂存(staged)。
已修改表示修改了文件,但还没保存到数据库中。
已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
已提交表示数据已经安全地保存在本地数据库中。
<4>Git项目有三个阶段:工作区、暂存区以及Git目录。
版本控制系统简介
本地版本控制系统:
集中化的版本控制系统:
分布式版本控制系统:
(2)git安装
安装Git
yum install -y git ##系统自带git,所以直接安装就行
获取git仓库有俩种方式:第一种是将尚未进行版本控制的本地目录转换为Git仓库。第二种是从其他服务器克隆一个已存在的Git仓库。比如:git clone。
下面将分别介绍这俩种。
(一)首先我们来看将本地目录转换为Git仓库:
mkdir demo ##建立一个目录
cd demo ##进入目录中
git init ##仓库初始化
注:上面的demo目录就是git仓库目录,以后所有git命令都要在这个目录下进行。还有.git目录是git跟踪管理版本库的,没事别瞎溜达!
(3)git的使用
git status ##查看文件的状态
git status -s ##简化输出文件的状态
git add filename ##git开始跟踪filename文件,就是将文件放在暂存区了
git commit ##提交更新,即将暂存区的文件提交到版本库中去
git的状态预览
git status -s ##查看状态
M README ##这个是指对已存在版本控制系统中文件的更改
MM Rakefile ##这个是将修改的文件add存在暂存区后,又对文件进行一次修改
A lib/git.rb ## A是指将新添加到工作目录的文件存放在暂存区中
M lib/simplegit.rb ##这个是将修改后的文件再存放到暂存区中
?? LICENSE.txt ##这个是新建的一个文件,git还没有开始对它进行追踪
git checkout -- README ##撤销对文件的修改
git add . ##添加所有文件到暂存区中
忽略文件
在工作目录中如果存在一些隐藏文件,这些文件它是没有意义的,但是工作目录中会识别到。所以我们需要忽略这些文件。
vim demo/.gitignore ##在demo工作目录下创建.gitignore
git diff ##修改版本控制系统的文件,并且将修改后的文件和版本控制系统中的文件做比对
git commit -a -m "v3" ##跳过使用暂存区域直接上传,-m是指定一些说明
移除文件:
重命名文件:
git mv README README.md
其实,运行 git mv 就相当于运行了下面三条命令:
$ mv README README.md
$ git rm README
$ git add README.md
查看提交历史:
git log ##查看全部提交历史
git log -p -2 ##俩个俩个来看提交历史
git log --stat
git log --pretty=oneline ##这个查看比较简洁
git reflog ##这个更加简洁
取消暂存文件:
git reset HEAD README ##取消暂存文件
版本回退:
git reflog ##查看提交历史
git reset --hard f41dfd
(二)远程仓库
注册一个github账号,并新建一个仓库。
ssh-keygen ##server1上生成密钥
cd /root/.ssh ##进入.ssh这个目录下面
ls ##查看里面的文件
cat id_rsa.pub ##查看公钥
推送本地仓库内容到github:
cd demo ##进入工作目录
git remote add origin https://github.com/yueliangshuile/git.git ##关联远程仓库
git remote -v ##查看一下
git push -u origin master ##第一次推送需要加-u参数
克隆远程仓库:
因为本地仓库将信息传到了github上面,这个如果将本地仓库的git工作目录删除了,还可以通过克隆远程仓库里的信息来恢复。
rm -fr demo ##删除工作目录
git clone git@github.com:yueliangshuile/demo.git ##克隆
上面远程仓库除了使用github外,我们还可以使用国内的码云,他相比github要快很多。