Git是目前世界上最先进的分布式版本控制系统
CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统
所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化
ls -ah //查看隐藏文件
1.Git创建仓库
1)创建一个目录
2)git init将该目录变为Git可以管理的仓库。ls-ah发现多个一个.git的文件
3)git add添加文件到版本库
4)git commit -m "本次提交的说明内容" 提交文件到仓库 (commit一次可以提交多个文件)
2.Git修改文件
1)修改文件
2)git status 查看仓库当前的状态(显示文件已修改,但尚未提交)
3)Git diff 查看文件做了什么修改
4)Git add
5)Git commit -m "Modify"
3.多次提交后可以通过git log查看修改提交日志 (--pretty=oneline可以筛选概略信息)
Git的版本号是一个SHA1计算出来的一个非常大的数字,用十六进制表示
4.版本回退
git reset --hard HEAD^ HEAD代表当前版本
回退后想在返回最新版本
1)git reflog 记录每一次命令,找到最新版本的版本号1094a
2)git reset --hard 1094a
5.工作区和暂存区
工作区:创建的目录
.git(版本库)包含一个Stage的暂存区;一个Git自动创建的分支master,以及一个指向master的指针HEAD
示例:
git add :添加文件到暂存区
git commit:把暂存区内容提交到当前分支
6.git checkout -- readme.txt 把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
7.删除文件
1)git rm file
2)git commit -m "message"
8.添加远程库
git remote add origin git@github.com:michaelliao/learngit.git
git push -u origin master 把当前分支master推送到远程。
-u,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
9.从远程库克隆
git clone git@github.com/hanweidong/gitskills.git
10.分支管理
1)git checkout -b dev 创建dev分支
-b表示创建并切换dev分支,包含两部
git branch dev
git checkout dev
2)git branch 查看当前分支
3)git merge dev 合并指定分支到当前分支
4)git branch -d dev 删除当前分支