Git学习小记——文件分块提交
来源:互联网 发布:2016网络棋牌赌博大案 编辑:程序博客网 时间:2024/05/17 06:32
前言
真的是非常难得的周末啊,好不容易可以静下心来慢慢的学习,慢慢的整理一些东西。
一
第一次见到Git的这个功能,我简直惊呆了。尤其是我这种非专业开发人员,常年线性撸代码,简直就是福音啊!
二
我们来做一个实验,首先先在本地生成一个git仓库
,建立一个文件叫做file
.里面的内容是五行A。如下所示:
SvenWeng@wengyanbin:~/Desktop/gittest|master⇒ echo a > fileSvenWeng@wengyanbin:~/Desktop/gittest|master⚡⇒ echo a >> fileSvenWeng@wengyanbin:~/Desktop/gittest|master⚡⇒ echo a >> fileSvenWeng@wengyanbin:~/Desktop/gittest|master⚡⇒ echo a >> fileSvenWeng@wengyanbin:~/Desktop/gittest|master⚡⇒ echo a >> fileSvenWeng@wengyanbin:~/Desktop/gittest|master⚡⇒ cat fileaaaaa
现在把我们的文件提交。
SvenWeng@wengyanbin:~/Desktop/gittest|master⚡⇒ git add fileSvenWeng@wengyanbin:~/Desktop/gittest|master⚡⇒ git commit -am'init'[master (root-commit) a3e5e97] init 1 file changed, 5 insertions(+) create mode 100644 file
三
提交文件之后,我们对文件做一些修改。修改内容如下:
diff --git a/file b/fileindex 72e1fe3..a39bec5 100644--- a/file+++ b/file@@ -1,5 +1,5 @@+ab a a a-a-a+abc
第一行,把a变成了ab,第五行,我把a变成了abc。那么就存在两个地方修改,现在要把这两个地方修改分次提交上去。
四
我们使用git add -p
。得到如下结果:
SvenWeng@wengyanbin:~/Desktop/gittest|master⚡⇒ git add -pdiff --git a/file b/fileindex 72e1fe3..a39bec5 100644--- a/file+++ b/file@@ -1,5 +1,5 @@+ab a a a-a-a+abcStage this hunk [y,n,q,a,d,/,s,e,?]?
最后一句Stage this hunk [y,n,q,a,d,/,s,e,?]?
是让我们选择一种方式,我们选择s
,表示我们要做拆分(split)
。拆分之后,我们可以查看拆分的内容。输入g
可以查看拆分的区块:
Stage this hunk [y,n,q,a,d,/,j,J,g,e,?]? g 1: -1,3 +1,4 +ab 2: -1,5 +2,4 -a go to which hunk?
最后一句go to which hunk?
是问我们跳转到哪个区块。我们选择1。
进入1之后,我们选择y
表示提交这一块。选择y
之后,会吧第二个区块展示给我们看,这个时候我们输入q
表示退出。然后我们提交,这时会出现一个很有意思的情况,我们看这个:
SvenWeng@wengyanbin:~/Desktop/gittest|master⚡⇒ git status -sMM file
file
这个文件一部分在暂存区,一部分在修改区
五
我们做一次提交查看一次不同:
diff --git a/file b/fileindex fc27ec6..a39bec5 100644--- a/file+++ b/file@@ -2,5 +2,4 @@ ab a a a-a-a+abc
现在就之后一处修改暂未提交了。我们再次提交。
使用git log
查看一下提交的记录:
commit a0804d4aa4fa413c74c6f03e9fb938036b4d1a8dAuthor: 翁彦彬 <diandianhanbin@gmail.com>Date: Sun Jul 3 15:39:17 2016 +0800 hunk2 commitcommit 85e1635c6542b47d40ea74dacfce3ba68dfaa677Author: 翁彦彬 <diandianhanbin@gmail.com>Date: Sun Jul 3 15:36:35 2016 +0800 hunk1 commitcommit a3e5e97a6e7eaacc2acdcf5fc20c7947b168d587Author: 翁彦彬 <diandianhanbin@gmail.com>Date: Sun Jul 3 15:24:06 2016 +0800 init
可以很清楚的看到,我们提交了三次,第一次是init,第二次是hunk1 commit,第三次是hunk2 commit。
六
当然,我们也可以查看每次提交的不同的具体位置。
使用git show head -2
表示查看近两次提交的不同点。
commit a0804d4aa4fa413c74c6f03e9fb938036b4d1a8dAuthor: 翁彦彬 <diandianhanbin@gmail.com>Date: Sun Jul 3 15:39:17 2016 +0800 hunk2 commitdiff --git a/file b/fileindex fc27ec6..a39bec5 100644--- a/file+++ b/file@@ -2,5 +2,4 @@ ab a a a-a-a+abccommit 85e1635c6542b47d40ea74dacfce3ba68dfaa677Author: 翁彦彬 <diandianhanbin@gmail.com>Date: Sun Jul 3 15:36:35 2016 +0800 hunk1 commitdiff --git a/file b/fileindex 72e1fe3..fc27ec6 100644--- a/file+++ b/file@@ -1,3 +1,4 @@+ab a a a
可以很清晰的看到,hunk1修改的是第一行我把a变成ab的结果。hunk2是我把a变成abc的结果。
- Git学习小记——文件分块提交
- git学习-提交文件
- git学习——查看提交历史
- Git学习<二>文件修改和提交
- git学习笔记(文件的提交)
- Git学习小记
- 学习小记-Git基础
- git学习—(4)进行一次简单提交
- git提交文件代码
- git 用法 文件提交
- git——创建仓库、提交、忽略文件、撤消更改、查看提交记录
- Git学习小记(一)
- git 提交 github 学习
- Git学习(三)----文件查看修改、提交修改
- git基础学习(二):对修改的文件进行提交 git diff 和 git status
- git简介、安装、基本操作——Git折腾小记
- git简介、安装、基本操作——Git折腾小记
- git服务器的建立——Git折腾小记
- HTML复习
- Quick-Cocos2d-x入门系列(一)
- LaTeX安装
- [leetcode-357]Count Numbers with Unique Digits(java)
- c#之跟踪(c#高级编程系列)
- Git学习小记——文件分块提交
- jQuery总结
- CSP考试 2016年04月第3题 路径解析 C++实现
- GeekBand第八周笔记
- mfc CString转string方法
- 50道编程小题目之【分解质因数】
- 强悍的 ubuntu —— xset
- Btrace的基本原理
- 数据库复习(2)