【分布式版本控制Git】(三)Git的使用
2015-06-15 12:56
316 查看
参考自 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
1.初始化一个Git仓库,使用git init命令。
git init
2.添加文件到Git仓库,分两步:
第一步,使用命令git add <file> 可反复多次使用,添加多个文件;
git add readme.txt
第二步,使用命令git commit,完成。
git commit -m "add a new file"
3.git status命令可以让我们时刻掌握仓库当前的状态
git status
4.git diff 这个命令看看文件变化
git diff readme.txt
5.git log命令显示从最近到最远的提交日志
6.版本回退
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
git reset --hard HEAD^
或者
git reset --hard 3628164
版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。
7.Git提供了一个命令git reflog用来记录你的每一次命令:
8.git checkout -- file可以丢弃工作区的修改:
git checkout -- readme.txt
9.场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
10.删除文件:
一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit:
现在,文件就从版本库中被删除了。
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
如果是rm删除,可以
$ git checkout -- test.txt
如果是git rm删除,则需要使用git reset HEAD <文件>撤出暂缓区,再使用git checkout -- test.txt恢复文件
11.分支管理
创建分支
Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
12.解决冲突
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
在两个分支上分别提交了不同的版本,再合并时会出现冲突
Git告诉我们,readme.txt文件存在冲突,必须手动解决冲突后再提交。git status也可以告诉我们冲突的文件
我们可以直接查看readme.txt的内容
修改之后再提交
用带参数的git log也可以看到分支的合并情况:
git log --graph --pretty=oneline --abbrev-commit
13.分支策略
在实际开发中,我们应该按照几个基本原则进行分支管理:
首先,
那在哪干活呢?干活都在
你和你的小伙伴们每个人都在
1.初始化一个Git仓库,使用git init命令。
git init
2.添加文件到Git仓库,分两步:
第一步,使用命令git add <file> 可反复多次使用,添加多个文件;
git add readme.txt
第二步,使用命令git commit,完成。
git commit -m "add a new file"
3.git status命令可以让我们时刻掌握仓库当前的状态
git status
4.git diff 这个命令看看文件变化
git diff readme.txt
5.git log命令显示从最近到最远的提交日志
6.版本回退
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
git reset --hard HEAD^
或者
git reset --hard 3628164
版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。
7.Git提供了一个命令git reflog用来记录你的每一次命令:
8.git checkout -- file可以丢弃工作区的修改:
git checkout -- readme.txt
9.场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
10.删除文件:
一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit:
现在,文件就从版本库中被删除了。
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
如果是rm删除,可以
$ git checkout -- test.txt
如果是git rm删除,则需要使用git reset HEAD <文件>撤出暂缓区,再使用git checkout -- test.txt恢复文件
11.分支管理
创建分支
Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
12.解决冲突
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
在两个分支上分别提交了不同的版本,再合并时会出现冲突
Git告诉我们,readme.txt文件存在冲突,必须手动解决冲突后再提交。git status也可以告诉我们冲突的文件
我们可以直接查看readme.txt的内容
修改之后再提交
用带参数的git log也可以看到分支的合并情况:
git log --graph --pretty=oneline --abbrev-commit
13.分支策略
在实际开发中,我们应该按照几个基本原则进行分支管理:
首先,
master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
那在哪干活呢?干活都在
dev分支上,也就是说,
dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把
dev分支合并到
master上,在
master分支发布1.0版本;
你和你的小伙伴们每个人都在
dev分支上干活,每个人都有自己的分支,时不时地往
dev分支上合并就可以了。
相关文章推荐
- python的线程thread笔记
- android 图片获取策略,下载并保存至指定文件夹
- c++: 为什么需要名字隐藏机制(c++ Why name hiding)?
- Linux 下 解压rar格式压缩包
- Lua时间转换
- Center os FTP配置
- 【计算几何】推导坐标的旋转公式
- Acfun自动签到程序
- 设计模式那点事--简单工厂模式
- 实验三:学生工作管理系统sql代码
- 【python学习笔记01】python的数据类型
- 数据类型
- 应用内购(In-App Purchase)常见问题解答
- 应用内购(In-App Purchase)常见问题解答
- Android软件开发之获取通讯录联系人信息 + android联系人信息的存储结构 + Android联系人读取操作笔记
- 食谱
- vs2012 正则
- POJ 3254:Corn Fields
- POJ 3254:Corn Fields
- @SpringBootApplication and CommandLineRunner