Git 学习笔记

笔记参考自Git教程: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 ,在此对原作者表示感谢!

1. Git 安装完后,还要设置user.name和user.email,方法如下:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

查看设置结果:

$ 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提交记录)

$ git reflog

5. 版本恢复

$ git reset --hard // 查看当前的版本号
$ git reset --hard XX // 恢复至版本 XX 

6.  工作区和暂存区

工作区(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/

 

posted on 2014-10-16 21:22  没有什么能够阻挡  阅读(148)  评论(0编辑  收藏  举报

导航