在Mac OS X上安装Git
由于没有Windows系统,也没在Windows上安装过git,所以只介绍mac的安装。Windows小伙伴自行百度了。
第一是安装homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:http://brew.sh/。
第二种方法更简单,也是推荐的方法,就是直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。
安装完成后,执行命令 git version
则是安装成功了!安装完成后执行以下两个命令,
git config --global user.name "xxx"
git config --global user.email "xxxxx"
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。git config
命令的--global
参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
创建版本库
版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪。
找一个自己喜欢的目录下面,创建一个文件夹,repository
mkdir repository
初始化仓库 git init
进入到repository文件夹,并执行git init 。执行完成后当前目录下会多出一个.git的隐藏文件夹,所有git需要的数据和资源都存放在该目录中。
查看仓库状态 git status
git status
执行结果首先展示了我们当前处于master分支下,没有东西可以提交,因为当前仓库中还没有记录任何文件的任何状态。
我们现在仓库里添加一个文件,添加内容 hello git! 再次执行 git status命令
红色的文件显示,表示此文件还未被git托管。
添加到暂存区 git add
git add 命令可以将一个文件添加到暂存区,接下来,执行命令将文件添加到暂存区中,再次执行 git status 查看
我们看到此时的状态已经发生了变化
提交到本地仓库 git commit
当文件提交到暂存区之后,此时我们可以通过git commit
命令将当前暂存区的文件提交到本地仓库。注意,执行commit命令时,我们需要加上提交备注,即-m参数
查看日志 git log
如果我们要查看的命令并不用这么详细,可以在git log
后面加上--pretty=short。
git log --pretty=short
,这样显示出来的就只是简略信息了
如果我只想查看某一个文件的提交日志,在git log
后面加上文件名即可。git log test01
如果我还想查看提交时文件的变化,加上-p参数即可 git log -p test01
查看更改前后的差异 git diff
我往文件中再添加 - change,此时执行git diff
命令,结果如下
此时我们执行git add命令,将文件提交到暂存区,然后再执行git diff,
此时没有任何信息输出,因此此时工作区的内容和暂存区的内容已经保持一致了。但是此时工作区和本地仓库中最新提交的内容还是不一致,我们可以通过git diff HEAD
命令来查看
此时我们需要执行git commit命令将暂存区中的文件提交,提交成功之后,再执行git diff HEAD
命令
工作区撤销 git checkout -- 文件名
首先我们执行了git status命令,工作区是干净的,然后vim 文件添加内容,保存并退出,退出来之后又执行了git status命令,此时工作区的状态已经发生变化。然后执行了git checkout — test01命令,表示撤销之前的操作,恢复到之前的状态。再执行git status,状态也恢复了。
add到暂存区的代码想撤销 先 git reset head 后 git checkout -- 文件名
先将暂存区的代码撤销到工作区,然后将工作区的代码撤销(工作区撤销)。
提交到本地仓库的撤销 git reset --hard <版本号>
提交到本地仓库的代码一样也可以撤销,我们可以利用git reset --hard <版本号>
命令来实现版本回退,该命令中的版本号有几种不同的写法
1.可以使用HEAD^来描述版本,一个^表示前一个版本,两个^^表示前两个版本,以此类推。
2.也可以使用数字来代替^,比如说前100个版本可以写作HEAD~100。
3.也可以直接写版本号,我们也可以直接填版本号,我们不用全部输入,只需要输入前面几个字符即可。