一直都想学习git,用于版本控制工具,之前用的是svn集中式的版本控制工具,听说git是一种分布式的版本控制工具,每个客户端都是一套完整的版本库。
git安装
- Mac 下默认会安装git,可以用
git --version
,来查看是否安装了git。
- 如果没有安装,那么可以通过homebrew安装git.
$ brew install git
git使用
版本控制的简单使用,无非分为版本库的建立,文件的添加,注释的添加,文件的更改,文件的回顾,分支代码的管理....
版本库的建立
- 在本地文件系统中建立个文件夹
mkdir learngit
- 将文件夹变为git可以管理的仓库
git init
- 初始化完成之后,在learngit 文件夹中会多三个隐藏文件,多出的文件应该是git的元数据信息。
在版本库中新增文件
- 在learngit中新增readme.txt
vi readme.txt
- 告诉git ,我要在仓库里添加文件了--
git add readme.txt
- 告诉git,我要将添加的文件提交到仓库里 --
git commit -m "注释信息"
- 使用
git status
,可以查看当然仓库的信息。
将本地仓库同步到码云
- 这里的用户名是你要设置的git的全局姓名或昵称
git config --global user.name "用户名"
- 设置的全局邮箱地址
git config --global user.email "邮箱地址"
- 连接远程仓库
git remote add origin [https://git.oschina.net/username/cccc.git](https://git.oschina.net/shenyanlong/cccc.git)
- 将文件上传到码云
git push -u origin master
版本回退
查看变更日志
git log
,commit后的为提交的ID回退到哪个版本
git reset --hard HEAD~12
,回退上个版本HEAD^
,回退到上上个版本HEAD^^
,回退到上100个版本HEAD~100
回退到具体版本号的方式--
git reset --hard d94d0d
版本号不用写全,git会自己匹配的,但是也不能只写前几位,可能会重复。git回退版本非常快,因为是指针引用的形式,只要改变引用就可以了。
工作区和暂存区
能看见的目录文件,就是工作区。
在.git隐藏文件夹为版本库,版本库中有个区域为stage 暂存区。
添加改变
git add
,是将文件添加到暂存区。提交文件
git commit
,将暂存区的文件提交到分支中
管理修改
git管理的不是文件,而是每次的修改,对每次的修改进行管理。如果先进行一次add,在修改文件,再commit。提交到版本库里的文件是不包括最近一次修改。修改都要先提交暂存区,要不修改提交不到版本库。
撤销
- 如果想撤销工作区的修改(修改和删除)
git checkout -- filename
- 撤销暂存区的修改
git reset HEAD filename
,再执行git checkout -- filename
- 撤销版本库的更改
git reset --hard HEAD~100
删除文件
- 删除文件
git rm filename
git commit -m "注释"