久久久国产精品视频袁燕,99re久久精品国产,亚洲欧美日韩国产综合v,天天躁夜夜躁狠狠久久,激情五月婷婷激情五月婷婷

痞子衡
認(rèn)證:普通會(huì)員
所在專(zhuān)題目錄 查看專(zhuān)題
第一本Git命令教程(1) - 準(zhǔn)備
第一本Git命令教程(3) - 變動(dòng)
第一本Git命令教程(4) - 轉(zhuǎn)移
第一本Git命令教程(5) - 提交
第一本Git命令教程(6) - 日志
第一本Git命令教程(2) - 連接
作者動(dòng)態(tài) 更多
一種多MCU分時(shí)復(fù)用Flash啟動(dòng)的創(chuàng)新方法(下)
2星期前
一種多MCU分時(shí)復(fù)用Flash啟動(dòng)的創(chuàng)新方法(上)
3星期前
RT10xx系列UART SDP能設(shè)置多高波特率?
06-06 09:51
有時(shí)候MCU片內(nèi)合封Flash就是個(gè)黑盒子!
05-15 13:52
有人說(shuō)高性能MCU片內(nèi)合封Flash不可靠?
05-13 14:33

第一本Git命令教程(3) - 變動(dòng)

今天是Git系列課程第三課,前兩課我們都是在做Git倉(cāng)庫(kù)準(zhǔn)備工作,今天痞子衡要講的是如何查看Git空間內(nèi)發(fā)生的改動(dòng)。

本地有了倉(cāng)庫(kù),我們便可以在倉(cāng)庫(kù)所在目錄下做文件增刪改操作,為了確定改動(dòng)操作的正確性,我們需要實(shí)時(shí)查看這些改動(dòng)狀態(tài),有兩種查看方式git status和git diff,痞子衡為大家逐一介紹:

1.查看Git空間文件改動(dòng)狀態(tài)git status

前面講過(guò)Git空間內(nèi)文件改動(dòng)有4種狀態(tài),除了Unmodified狀態(tài)的文件因?yàn)椴⑽锤膭?dòng)默認(rèn)沒(méi)有狀態(tài)不做顯示之外,其他文件改動(dòng)狀態(tài)都可以通過(guò)git status來(lái)查看。讓我們開(kāi)始在工作區(qū)創(chuàng)建3個(gè)文件:main.c、test.c、dummy.c  

dummy.c(路徑:/gittest/app/dummy.c)為空白文件?! ?/p>

test.c(路徑:/gittest/app/test.c)文件內(nèi)容如下:

#include <stdio.h>
#include <stdlib.h>
void test(void)
{
    printf("this is test\n");
}

main.c(路徑:/gittest/main.c)文件內(nèi)容如下:

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    printf("hello world\n");
    return 0;
}

為了使改動(dòng)類(lèi)型更加豐富一點(diǎn),我們?cè)谝汛嬖贕it本地&遠(yuǎn)程倉(cāng)庫(kù)的README.md文件中增加一行內(nèi)容"# first update"。我們來(lái)看看Git記錄的狀態(tài),從下面結(jié)果可知,新增的3個(gè)文件在Git空間里都屬于Untracked文件,存放在工作區(qū)內(nèi)。READMED.md文件的改動(dòng)處于Modified狀態(tài),也存放在工作區(qū)。

jay@pc MINGW64 /d/my_project/gittest (master)
$ git status

On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   README.md

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        app/
        main.c

no changes added to commit (use "git add" and/or "git commit -a")

2.查看Git空間文件具體改動(dòng)git diff

git status只能讓我們知道文件在Git空間內(nèi)的改動(dòng)狀態(tài),但如果我們想查看某個(gè)文件內(nèi)具體改了什么(也可以理解為在不同Git空間中的差異),此時(shí)需要用git diff命令?! ?/p>

對(duì)于main.c文件,由于是新增的文件,其只存在于工作區(qū),且處于Untracked狀態(tài),Git認(rèn)為無(wú)論是哪兩個(gè)Git空間之間的比對(duì)都沒(méi)有意義,得到的結(jié)果是沒(méi)有區(qū)別。  

而對(duì)于README.md文件,由于已經(jīng)被提交到倉(cāng)庫(kù)了,處于Git管理中,所以這個(gè)文件同時(shí)存在于三個(gè)Git空間(工作區(qū),暫存區(qū),倉(cāng)庫(kù)),我們?cè)诠ぷ鲄^(qū)內(nèi)對(duì)其進(jìn)行了文件改動(dòng),無(wú)論是比對(duì)工作區(qū)vs暫存區(qū)或者工作區(qū)vs倉(cāng)庫(kù),得到的結(jié)果應(yīng)該都是README.md文件里的具體變化內(nèi)容。而如果比對(duì)暫存區(qū)vs倉(cāng)庫(kù),得到的結(jié)果也應(yīng)該是沒(méi)有區(qū)別。

2.1查看文件當(dāng)前變動(dòng)(工作區(qū)vs暫存區(qū))git diff [file path]

// 查看main.c得不到任何結(jié)果
jay@pc MINGW64 /d/my_project/gittest (master)
$ git diff main.c

// 查看README.md可看到文件具體變化
jay@pc MINGW64 /d/my_project/gittest (master)
$ git diff README.md

diff --git a/README.md b/README.md
index 92eca93..229dc5f 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,2 @@
 # gittest
+# first update

2.2查看文件跨越變動(dòng)(工作區(qū)vs倉(cāng)庫(kù))git diff [commit] [file path]

由于gittest倉(cāng)庫(kù)目前只有一次提交,所以此處commit只能是HEAD,只能與上一次提交對(duì)比,得到的結(jié)果與2.1是一致的。為了充分展示這個(gè)功能,我們將此次的README.md的改動(dòng)先提交到倉(cāng)庫(kù)。

jay@pc MINGW64 /d/my_project/gittest (master)
$ git add README.md

jay@pc MINGW64 /d/my_project/gittest (master)
$ git commit -m "second commit"

[master aa9db9d] second commit
 1 file changed, 1 insertion(+)
jay@pc MINGW64 /d/my_project/gittest (master)
$ git fetch

jay@pc MINGW64 /d/my_project/gittest (master)
$ git rebase

First, rewinding head to replay your work on top of it...
Applying: second commit
jay@pc MINGW64 /d/my_project/gittest (master)
$ git push

Counting objects: 3, done.
Writing objects: 100% (3/3), 276 bytes | 276.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:JayHeng/gittest.git
   5fe04f8..867df08  master -> master

然后對(duì)README.md再修改一次增加新一行內(nèi)容"# second update"?,F(xiàn)在我們?cè)賮?lái)查看README.md跨級(jí)變動(dòng)(HEAD表示是最近一次commit,HEAD^表示上一次commit,HEAD~100表示上100次commit):

// 查看README.md與最近一次commit的變化(等同于當(dāng)前變化)
jay@pc MINGW64 /d/my_project/gittest (master)
$ git diff HEAD README.md

diff --git a/README.md b/README.md
index 229dc5f..db5442d 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,3 @@
 # gittest
 # first update
+# second update
// 查看README.md與上一次commit的變化(等同于2次變化的匯總)
jay@pc MINGW64 /d/my_project/gittest (master)
$ git diff HEAD^ README.md

diff --git a/README.md b/README.md
index 92eca93..db5442d 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,3 @@
 # gittest
+# first update
+# second update

對(duì)于README.md文件的第二次改動(dòng)僅是用于演示跨越變動(dòng)對(duì)比的功能,為不影響后續(xù)講解,我們現(xiàn)在將這個(gè)變動(dòng)恢復(fù)(文件編輯器打開(kāi)文件,直接刪除"# second update")。

2.3查看文件歷史變更(倉(cāng)庫(kù)vs倉(cāng)庫(kù))git diff [commit] [commit]

gittest倉(cāng)庫(kù)目前已有2次提交,讓我們直接比對(duì)這兩次提交。Note:Git每次commit都會(huì)產(chǎn)生一個(gè)唯一ID(SHA-1號(hào))用于記錄這個(gè)commit,可在git commit/git push命令的返回結(jié)果里看到。

jay@pc MINGW64 /d/my_project/gittest (master)
$ git diff 5fe04f8 867df08

diff --git a/README.md b/README.md
index 92eca93..229dc5f 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,2 @@
 # gittest
+# first update
聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場(chǎng)。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請(qǐng)聯(lián)系:editor@netbroad.com
覺(jué)得內(nèi)容不錯(cuò)的朋友,別忘了一鍵三連哦!
贊 0
收藏 1
關(guān)注 41
成為作者 賺取收益
全部留言
0/200
成為第一個(gè)和作者交流的人吧