Git简介
首先要问2个问题:
1、什么是Git?
Git是一种最常用、也是最好用的分布式版本控制系统。
2、为什么使用Git而不是svn?
Git是分布式版本控制系统,svn是中央版本控制系统,Git在本地和远程都有版本库。在无网络情况下,Git也可以进行版本控制,有网络的时候统一commit,但是svn只能在有网络的时候做版本控制。Git是按内容进行存储,svn是按文件进行存储,Git的处理速度更迅速,特别是在外网服务器上的处理。
Git检测与安装
通过输入
git --version
命令可以判断Git工具是否安装,如果提示
bogon:~ issuser$ git --version
git version 2.10.0
则证明已经安装MacOS系统安装Git仓库有以下两种方法:
1、Xcode
Xcode编辑器里Components里有Command line tool工具,下载安装后自动包含了Git工具
2、HomeBrew
通过brew install git 命令可以安装Git。
Git仓库的创建与使用
创建仓库
这里先进入用户文件系统桌面目录下,然后创建了一个叫testGit的文件夹。进入testGit,执行git init
命令,如上图提示即创建成功。开始使用我们的仓库吧
新建一个readme文件,输入一行文字。
使用git add readme.txt
将该文件加入我们的stage区域暂时保存起来(此时还没有更新到我们的版本库中。)
可以使用git status
命令来查看此时的状态。
终于到了这一步,要把我们的文件更新到版本库中了!使用git commit -m "add readme.txt"
命令提交我们的文件吧,-m 后边可以添加我们对此次更新的描述。我们可以使用多次
git add
的命令添加多个修改文件,然后使用git commit
命令来一起提交文件。
添加到版本库之后,可以使用git log
命令来打印更新日志。如果嫌打印的内容太繁琐,还可以git log --pretty=oneline
来显示简洁版的日志内容。git diff
在提交更新到版本库之后,如果对本地工作目录进行了修改,比如在readme.txt文件里添加了第二行:
可以通过git diff
功能来对比工作目录和stage里的区别。然后再通过git add 和 git commit命令进行提交。如果想撤销本地修改的文件该怎么办呢?
撤销本地工作目录的修改
使用git checkout -- readme.txt
命令,可以将本地工作目录已修改的内容恢复至修改之前(我理解为将stage暂存区域的readme.txt文件直接覆盖本地文件,理解不对请大神指出)。如果不小心已经执行过
git add readme.txt
命令,已经将修改的内容提交到了stage暂存区域了(幸好还没有commit),那要怎么办呢?撤销stage暂存区域内的修改
首先通过
git status
来查看此时stage的状态,可以看到提示里(use "git reset HEAD <file>..." to onstage)
这句话其次使用
git reset HEAD readme.txt
命令来将stage的修改回退。最后使用上次撤销本地工作目录修改的方法
git checkout -- readme.txt
,执行完之后cat 下我们的文件,是不是已经恢复到之前的内容了?
如果又不小心已经执行过
git commit -m "modify readme.txt"
命令,已经将修改的内容更新到了版本库中,那是不是没救了??不然,我们还有最后一个方法!版本库回退
人生没有退路,但是在Git中有!在Git中,是有后悔药可以吃的^_^。
当你用版本库回退操作时,必须用到你之前commit时git生成的commit id。很幸运Git提供了一个命令git reflog用来记录你的每一次命令。
通过使用git reset --hard 15b1da3
(15b1da3是你要回退的之前的commit id),可以轻松将版本库、stage、本地工作目录都恢复到修改之前的状态。删除文件
rm
是linux系统下删除文件的命令,对于从linux下诞生的Git工具来说,当然是适用的~
通过git rm 1.txt
命令就可以将我们不需要的文件删除啦,当然删除后别忘了提交一下git commit -m "remove 1.txt"
啦。