首页 > 其他 > 详细

Git学习笔记

时间:2014-03-06 06:42:02      阅读:387      评论:0      收藏:0      [点我收藏+]

1. Git是分布式版本控制系统,相对的,CVS、SVN都是集中式的版本控制系统;

2. Git安装(Linux)
1) 使用

$ git

查看当前系统是否安装了git;

2) 如果当前系统还没有安装git,在Debian或Unbuntu下,可以使用命令

bubuko.com,布布扣
$ sudo apt-get install git 
bubuko.com,布布扣

完成git的安装;

3) 如果是其他Linux版本,先从Git官网下载源码,解压然后依次输入:

bubuko.com,布布扣
1 $ ./config
2 $ make
3 $ sudo make install
bubuko.com,布布扣

4) 安装完成后,进行设置,在命令行输入:

bubuko.com,布布扣
1 $ git config --global user.name “Your name”
2 $ git config --global user.email email@example.com
bubuko.com,布布扣

注:使用git config命令的--global参数之后,表示当前机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的username和Email地址;

3. 创建版本库
1) 选择一个合适的地方,创建一个空目录;

bubuko.com,布布扣
1 $ mkdir directory-name
2 $ cd directory-name
3 $ pwd
bubuko.com,布布扣

pwd命令用于查看当前目录;

2) 使用

$ git init

命令把该目录变成Git可以管理的仓库;

4. 使用

$ git status

命令查看当前仓库的状态;

5. 使用$ diff file-name查看当前版本文件和远程仓库版本的区别;
使用

bubuko.com,布布扣
$ git diff HEAD -- file-name
bubuko.com,布布扣

查看工作区和版本库里最新版本的区别;

6. 版本回退
1) 使用

$ git log

查看历史记录;

2) 使用

bubuko.com,布布扣
$ git log --pretty=oneline
bubuko.com,布布扣

查看简单历史记录;

3) 使用

bubuko.com,布布扣
$ git reset --hard HEAD^
bubuko.com,布布扣

回退到最近的上一个版本;

4) 使用

$ cat file-name

查看文件内容;

5) 假定有历史版本,其版本号的前几位为123456,
使用

bubuko.com,布布扣
$ git reset --hard 123456
bubuko.com,布布扣

退回到该版本号标识的版本;

6) 使用

$ git reflog

命令查看命令历史列表;

7. 关于Git的版本回退
Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当执行版本回退操作时,Git仅仅是把该指针的指向改变而已;

8. 工作区和暂存区
工作区(Working Directory): 当前操作的文件所在的目录就是一个工作区;
版本库(Repository): 工作区有一个隐藏目录”git”,该目录不是工作区,而是Git的版本库,该目录下保存了成为stage(或者成为index)的暂存区,还有Git为该仓库工作而自动创建的第一个分支master,以及指向master的指针HEAD;

9. Git添加文件的步骤
1) 使用

$ git add file-name

把文件修改添加到暂存区;

2) 使用

bubuko.com,布布扣
$ git commit –m ‘comment’
bubuko.com,布布扣

把暂存区的所有内容提交到当前分支;

注: 对于每次修改,如果不把该次修改添加到暂存区,就不会被加入到commit里面;

10. Git跟踪管理的对象是修改,而不是文件;

11. 撤消修改
1) 当错误修改了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令

bubuko.com,布布扣
$ git checkout -- file-name
bubuko.com,布布扣

完成操作;

2) 不仅错误修改了工作区某个文件的内容,而且还将该修改添加到了暂存区,要丢弃该次修改,第一步使用

bubuko.com,布布扣
$ git reset HEAD file-name
bubuko.com,布布扣

回到步骤1),然后按步骤1)进行操作;

3) 如果已经把不合适的修改提交到了版本库时,要撤消本次提交,参考6. 版本退回,不过前提是尚未推送到远程库;

12. 删除文件
1) 直接在文件管理器中删除无用文件,使用命令

$ rm file-name

进行操作;

2) 如果要确实从版本库中删除该文件,使用命令

$ git rm file-name

进行操作;

3) 如果删除错了,可以使用版本库的最新版本进行恢复,使用命令

bubuko.com,布布扣
$ git checkout -- file-name
bubuko.com,布布扣

进行操作;

13. 远程仓库
1) 创建SSH Key,在用户主目录下,如果有.ssh目录,但该目录下没有私钥文件id_rsa和公钥文件id_rsa.pub两个文件,使用shell创建SSH Key:

bubuko.com,布布扣
$ ssh-keygen -t rsa -C "email@example.com"
bubuko.com,布布扣

14. 克隆远程仓库

使用命令

bubuko.com,布布扣
$ git clone git@github.com:jiabailie/Collections.git
bubuko.com,布布扣

进行操作;

注: Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快;

15. 分支管理
1) 创建并切换分支
使用

$ git checkout -b dev

创建dev分支,并把当前分支切换到dev分支;

上面的一条命令相当于

bubuko.com,布布扣
1 $ git branch dev
2 $ git checkout dev
bubuko.com,布布扣

两条命令的效果;

2) 查看当前分支,使用

$ git branch

进行操作;

3) 当前dev分支工作并且提交后,切换回master分支,使用

bubuko.com,布布扣
$ git checkout master
bubuko.com,布布扣

进行分支切换;

4) 合并dev分支到master分支,使用命令

$ git merge dev

进行操作,前提是已经切换回master分支;

5) 分支合并后,删除dev分支,使用命令

$ git branch -d dev

进行操作;

16. 冲突解决
查看分支合并情况,使用命令

bubuko.com,布布扣
$ git log --graph --pretty=oneline --abbrev-commit
bubuko.com,布布扣

进行操作;

17. 分支管理策略
Git默认使用Fast forward模式,在该模式下,删除分支后,会丢弃该分支的信息;
使用--no-ff参数禁用Fast forward方式的merge,禁用后,git会在merge时生成一个新的commit,由此从该分支历史上可以看出分支信息,
使用命令

bubuko.com,布布扣
$ git merge --no-ff -m merge with no-ff dev
bubuko.com,布布扣

完成操作;

18. Bug分支
1) 使用stash功能可以把当前的工作现场保存起来,等以后恢复现场后继续工作,使用

$ git stash

命令完成操作;

2) 使用

$ stash list

命令查看保存的工作现场列表;

3) 有两种办法用来恢复现场:
第一种是使用

$ git stash apply

恢复现场,恢复后stash的内容不会删掉,需要使用

$ git stash drop

命令进行删除操作,使用时先使用

$ git stash list

查看stash列表,然后恢复指定的stash,例如

bubuko.com,布布扣
$ git stash apply stash@{0}
bubuko.com,布布扣

第二种是使用

$ git stash pop

恢复现场,恢复现场的同时也会把stash的内容删除;

19. 强行删除指定分支,使用命令

bubuko.com,布布扣
$ git branch -D branch-name
bubuko.com,布布扣

进行操作;

20. 多人协作
1) 查看远程库信息,使用命令

$ git remote

进行操作;

如果要查看详细,使用命令

$ git remote -v

进行操作;

2) 创建远程origin下dev分支的本地dev分支,使用命令

bubuko.com,布布扣
$ git checkout -b dev origin/dev
bubuko.com,布布扣

进行操作;

3) 设置本地dev分支和远程origin/dev分支的链接,用于git pull操作,使用命令

bubuko.com,布布扣
$ git branch --set-upstream dev origin/dev
bubuko.com,布布扣

进行操作。

参考:
[1] Git Documentation
[2] 廖雪峰的Git教程

Git学习笔记,布布扣,bubuko.com

Git学习笔记

原文:http://www.cnblogs.com/flyingpeguin/p/3582684.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!