真的是非常難得的週末啊,好不容易可以靜下心來慢慢的學習,慢慢的整理一些東西。
第一次見到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...