笔记参考自Git教程: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 ,在此对原做者表示感谢!git
1. Git 安装完后,还要设置user.name和user.email,方法以下:github
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
查看设置结果:spa
$ git config --global user.name $ git config --global user.email
显示当前路径:版本控制
$ pwd
2. 提交修改指针
$ git add . $ git add -u $ git commit -m " XX comments "
3. 查看各版本提交记录日志
$ git log // 查看详细版本日志 $ git log --pretty=oneline // 查看简略版本日志
4. 查看操做记录(包含版本commit提交记录)code
$ git reflog
5. 版本恢复orm
$ git reset --hard // 查看当前的版本号
$ git reset --hard XX // 恢复至版本 XX
6. 工做区和暂存区blog
工做区(Working Directory):设定的目录教程
版本库(Repository):.git 隐藏目录。 版本库中包含了暂存区(stage或index),一个自动建立的分支master,以及一个指向master的指针head。
$ git add // 是将文件修改添加到暂存区中;
$ git commit // 是将暂存区中内容提交到当前分支中。
$ git diff HEAD -- XX_file_name // 能够查看工做区和版本库中文件最新版本(HEAD来表示)的区别
7. 撤销修改
$ git checkout -- XX_file_name // 注意 -- 不能丢,不然为新建一个分支的命令
此时文件xx_file_name在工做区中所作的修改将会被撤销,文件内容根据如下2中状况进行回退:
(1)若是当前暂存区中有该文件,则回退到暂存区的版本;
(2)若是没有,则回退到版本库中的最新版本。
$ git reset HEAD XX_file_name
将文件XX_file_name在暂存区的最新版本从新放回工做区,撤销add。
场景1:当你改乱了工做区某个文件的内容,想直接丢弃工做区的修改时,用命令git checkout -- file
。
场景2:当你不但改乱了工做区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file
,就回到了场景1,第二步按场景1操做。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
8. 删除文件
$ rm XX_file_name
$ git rm XX_file_name // 版本库中删除
$ git checkout -- XX_file_name // 版本库中恢复
9. 建立、合并、删除分支
(1)建立分支
$ git branch XX_branch_name // 建立分支 $ git checkout XX_branch_name // 切换到分支 XX_branch_name
查看当前各分支及状态
$ git branch
$ git checkout XX_branch_name // 切换到分支 XX_branch_name
(2) 合并分支
$ git merge XX_branch_name // 合并分支 XX_branch_name 到当前分支
(3) 删除分支
$ git branch -d XX_branch_name // 删除分支
10. 分支的管理策略
在实际开发中,咱们应该按照几个基本原则进行分支管理:
(1)有一个master分支保持很是稳定,也就是仅用来发布新版本,平时不能在上面干活;
(2)有一个主dev分支用于开发,是不稳定的,修改都在dev上。只是到某个时候,好比1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
(3)你和你的小伙伴们每一个人都有本身的dev分支,时不时地往主dev分支上合并就能够了。
以下图所示:
修改Bug和添加Feature时,都应当新建一个对应的Dev分支,待改动结束后,merge到主dev分支上。
11. 多人协做
查看远程库信息:
$ git remote -v // 查看
$ git remote add origin_blog git@github.com:vin-zhou/vin-zhou.github.com.git // 添加远程分支
$ git remote remove origin_blog // 删除远程分支
多人协做的工做模式一般是这样:
(1)首先,能够试图用git push origin branch-name推送本身的修改;
(2)若是推送失败,则由于远程分支比你的本地更新,须要先用git pull试图合并;
(3)若是合并有冲突,则解决冲突,并在本地提交;
(4)没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
若是git pull提示“no tracking information”,则说明本地分支和远程分支的连接关系没有建立,用命令git branch --set-upstream branch-name origin/branch-name。
这就是多人协做的工做模式,一旦熟悉了,就很是简单。
12. 标签管理
补充:
1. 强制添加文件 :git add -f , 将会无视.gitignore文件,将目录下全部文件都添加进来。
2. git 忽略文件
讲忽略文件的好文章 http://cwind.iteye.com/blog/1666646
使用 git rm --cached file_name , 会将该file_name从tracked中删除,不予跟踪。
3. 将版本控制的好文章:http://sjtuecho.blog.163.com/blog/static/20501207420130119441404/