git的使用
一、git的基本操作
1、git init –初始化仓库
要使用Git进行版本管理,必须先初始化仓库。Git是使用 git init 命令初始化的。建立一个目录并初始化仓库:
1 | $ mkdir git-tutorial |
如果初始化成功,执行了git init命令的目录下就会生成.git目录。这个.git目录里存储着管理当前目录内容所需的仓库数据。
2、 git status –查看仓库的状态
git status 命令用于显示Git仓库的状态。这是一个十分常用的命令,务必牢记。工作树和仓库在被操作的过程中,状态会不断发生变化。在Git操作过程中时常使用此命令查看状态。
1 | $ git status |
上述执行了命令后的结果显示,当前正处于master 分支下。并且表示尚没有可提交的内容。我们可以在项目仓库目录下创建一个readme.md文件:
1 | $ touch README.md |
可以看到在Untracked files 中显示了 README.md 文件。类似的,只要对Git的工作树或仓库进行操作,git status 命令的显示结果就会发生变化。
3、 git add –向暂存区添加文件
仅用git仓库的工作树创建了文件,该文件并不会被记入Git 仓库的版本管理对象中。要想让文件成为Git仓库的管理对象,就需要用 git add命令将其加入暂存区(Stage 或者 Index)中。暂存区是提交之前的一个临时区域。
$ git add README.md
4、 git commit –保存仓库的历史记录
git commit 命令可以将当前暂存区中的文件实际保存到仓库的历史记录中。
1 | $ git commit -m "First commit" |
-m参数后的”First commit”称作提交信息,是对这个提交的概述。
5、 git log –查看提交日志
git log 命令可以查看以往仓库提交的日志。包括可以查看什么人在什么时候进行了提交或合并,以及操作前后有怎样的差别。关于合并我们会在后面解说。
1 | $ git log |
如上所示,commit栏显示的提交的哈希值。Git的其他命令中在指向提交时会用到这个哈希值。Author栏显示的提交的用户名和邮箱地址。Date栏中显示提交执行的日期和时间。再往下就是提交的信息。
6、 git diff –查看更改前后的差别
git diff 命令可以查看工作树,暂存区,最新提交之间的区别。
在README.md中写点东西
# Git 教程
执行git diff,查看当前工作树和暂存区的差别。
1 | $ git diff |
其中”+”表示新增加的行,”-“表示被删除的行。
二、git分支的操作
在进行多个并行作业是,常会用到分支。
不同的分支中可以同时进行完全不同的作业。等该分支的作业完成后再与master分支合并。
1、git branch –显示分支一览表
git branch 命令可以将分支名列表显示,同时可以确认当前所在分支。
1 | $ git branch |
上面的*号表示当前处于master 分支下,且在该分支下进行开发,而且当前仅有一个master 分支。
2、git checkout -b –创建、切换分支
如果想以当前的master分支为基础创建新的分支,我们需要用到
git checkout -b 命令
1 | $git checkout -b feature-a |
3、git merge –合并分支
分支在功能特性开发完成后,往往需要讲这些特性添加到主分支中,此时就需要将分支合并。
- 首先切换到主分支master分支
1 | $ git checkout master |
- 合并分支
$ git merge --no-ff feature-a
三、更改提交的操作
1、git reset –回溯历史版本
1 | $ git reset --hard <hash值> |
2、消除冲突
假如此时有两个分支,A和B ,A分支里的README.md 里有aaa内容,B分支里的README.md里有bbb内容,此时,A分支更改的部分与本次想要合并的fix-B分支更改的部分发生冲突。
解决冲突:打开冲突文件更改冲突的部分。
四、推送至远程仓库
1、git remote add –添加远程仓库
git remote add origin <远程仓库地址>
2、git push –推送至远程仓库
推送至master分支:
$ git push -u origin master推送至master以外的分支:
1 | $ git checkout -b feature-a |
- 如果执行
git remote add origin <远程仓库地址>,出现错误:fatal: remote origin already exists则执行以下语句:git remote rm origin
再往后执行git remote add origin <远程仓库地址>即可. - 在执行
git push -u origin feature时,报错:error:failed to push som refs to.......
则执行以下语句:git pull origin master
先把远程服务器github上面的文件拉先来,再push 上去。
五、从远程仓库获取
1、git clone –获取远程仓库
git clone <仓库远程地址>
2、git pull –获取最新远程仓库分支
$ git pull origin feature-a
六、推荐:
- Pro Git (一部零基础的Git学习资料)
- LearnGitBranching(学习git基本操作的网站)
- tryGit(可以以便操作一边学习Git的基本功能)