Git學習小記 檔案分塊提交

2021-07-14 08:32:22 字數 4020 閱讀 9046

真的是非常難得的週末啊,好不容易可以靜下心來慢慢的學習,慢慢的整理一些東西。

第一次見到git的這個功能,我簡直驚呆了。尤其是我這種非專業開發人員,常年線性擼**,簡直就是福音啊!

我們來做乙個實驗,首先先在本地生成乙個git倉庫,建立乙個檔案叫做file.裡面的內容是五行a。如下所示:

svenweng

@wengyanbin

:~/desktop/gittest|master

⇒ echo a > file

svenweng

@wengyanbin

:~/desktop/gittest|master⚡

⇒ echo a >> file

svenweng

@wengyanbin

:~/desktop/gittest|master⚡

⇒ echo a >> file

svenweng

@wengyanbin

:~/desktop/gittest|master⚡

⇒ echo a >> file

svenweng

@wengyanbin

:~/desktop/gittest|master⚡

⇒ echo a >> file

svenweng

@wengyanbin

:~/desktop/gittest|master⚡

⇒ cat fileaaaaa

現在把我們的檔案提交。

svenweng

@wengyanbin

:~/desktop/gittest|master⚡

⇒ git add file

svenweng

@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/file

index 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 -p

diff --git a/file b/file

index 72e1fe3..a39bec5 100644

--- a/file

+++ b/file

@@ -1,5 +1,5 @@

+ab a

a a-a-a

+abc

stage 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 -s

mm file

file這個檔案一部分在暫存區,一部分在修改區

我們做一次提交檢視一次不同:

diff --git a/file b/file

index fc27ec6..a39bec5 100644

--- a/file

+++ b/file

@@ -2,5 +2,4 @@ ab aa

a-a-a+abc

現在就之後一處修改暫未提交了。我們再次提交。

使用git log檢視一下提交的記錄:

commit a0804d4aa4fa413c74c6f03e9fb938036b4d1a8d

author: 翁彥彬 .com>

date: sun jul 3

15:39:17

2016 +0800

hunk2 commit

commit 85e1635c6542b47d40ea74dacfce3ba68dfaa677

author: 翁彥彬 .com>

date: sun jul 3

15:36:35

2016 +0800

hunk1 commit

commit a3e5e97a6e7eaacc2acdcf5fc20c7947b168d587

author: 翁彥彬 .com>

date: sun jul 3

15:24:06

2016 +0800

init

可以很清楚的看到,我們提交了三次,第一次是init,第二次是hunk1 commit,第三次是hunk2 commit。

當然,我們也可以檢視每次提交的不同的具體位置。

使用git show head -2表示檢視近兩次提交的不同點。

commit a0804d4aa4fa413c74c6f03e9fb938036b4d1a8d

author: 翁彥彬 date: sun jul 3 15:39:17 2016 +0800

hunk2 commit

diff --git a/file b/file

index fc27ec6..a39bec5 100644

--- a/file

+++ b/file

@@ -2,5 +2,4 @@ ab

a aa-a

-a+abc

commit 85e1635c6542b47d40ea74dacfce3ba68dfaa677

author: 翁彥彬 date: sun jul 3 15:36:35 2016 +0800

hunk1 commit

diff --git a/file b/file

index 72e1fe3..fc27ec6 100644

--- a/file

+++ b/file

@@ -1,3 +1,4 @@

+ab a

a a

可以很清晰的看到,hunk1修改的是第一行我把a變成ab的結果。hunk2是我把a變成abc的結果。

GIt 學習小記 Quick Start

git是什麼?git是目前世界上最先進的分布式版本控制系統 沒有之一 git有什麼特點?高階大氣上檔次 這是個比較有意思的故事,簡單的來說,就是牛人對現有的版本控制工具感到不爽,乾脆自己寫乙個得了。牛人就是這麼牛啊!感覺自己好菜,望塵莫及 牛人是當今最流行的伺服器系統linux創始人linus。gi...

git忽略檔案提交

在專案根路徑下配置.gitignore檔案,在這個檔案裡配置不需要提交的檔案即可,具體的規則可以上網找,這裡給自己做個記錄。touch gitignore建立了檔案後就可以直接在windows下操作了。gitignore配置內容如下 bin target bak settings classpath...

Git命令提交檔案

首先檢查本地倉庫當前狀態,顯示更改的檔案 如圖所示顯示有乙個檔案test.txt被修改 執行add命令 git add test.txt發現檔名變綠色,說明加入暫存區成功 git commit在彈出的文字編輯器中輸入提交的內容,然後 wq退出 將檔案提交 然後進行遠端推送 注意推送的分支名稱 bra...