精品国产一区在线_av无码中文字幕无码王_天海翼三点刺激高潮不停_好硬好大好爽视频_欧美高清一区三区在线专区_香蕉黄色片

痞子衡
認證:普通會員
所在專題目錄 查看專題
第一本Git命令教程(1) - 準備
第一本Git命令教程(3) - 變動
第一本Git命令教程(4) - 轉移
第一本Git命令教程(5) - 提交
第一本Git命令教程(6) - 日志
第一本Git命令教程(2) - 連接
作者動態 更多
MDK5.40下添加用戶下載算法FLM文件的方法
2星期前
一種多MCU分時復用Flash啟動的創新方法(下)
06-22 10:33
一種多MCU分時復用Flash啟動的創新方法(上)
06-15 10:22
RT10xx系列UART SDP能設置多高波特率?
06-06 09:51
有時候MCU片內合封Flash就是個黑盒子!
05-15 13:52

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

今天是Git系列課程第三課,前兩課我們都是在做Git倉庫準備工作,今天痞子衡要講的是如何查看Git空間內發生的改動。

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

1.查看Git空間文件改動狀態git status

前面講過Git空間內文件改動有4種狀態,除了Unmodified狀態的文件因為并未改動默認沒有狀態不做顯示之外,其他文件改動狀態都可以通過git status來查看。讓我們開始在工作區創建3個文件:main.c、test.c、dummy.c  

dummy.c(路徑:/gittest/app/dummy.c)為空白文件。  

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

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

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

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

為了使改動類型更加豐富一點,我們在已存在Git本地&遠程倉庫的README.md文件中增加一行內容"# first update"。我們來看看Git記錄的狀態,從下面結果可知,新增的3個文件在Git空間里都屬于Untracked文件,存放在工作區內。READMED.md文件的改動處于Modified狀態,也存放在工作區。

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空間文件具體改動git diff

git status只能讓我們知道文件在Git空間內的改動狀態,但如果我們想查看某個文件內具體改了什么(也可以理解為在不同Git空間中的差異),此時需要用git diff命令。  

對于main.c文件,由于是新增的文件,其只存在于工作區,且處于Untracked狀態,Git認為無論是哪兩個Git空間之間的比對都沒有意義,得到的結果是沒有區別。  

而對于README.md文件,由于已經被提交到倉庫了,處于Git管理中,所以這個文件同時存在于三個Git空間(工作區,暫存區,倉庫),我們在工作區內對其進行了文件改動,無論是比對工作區vs暫存區或者工作區vs倉庫,得到的結果應該都是README.md文件里的具體變化內容。而如果比對暫存區vs倉庫,得到的結果也應該是沒有區別。

2.1查看文件當前變動(工作區vs暫存區)git diff [file path]

// 查看main.c得不到任何結果
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查看文件跨越變動(工作區vs倉庫)git diff [commit] [file path]

由于gittest倉庫目前只有一次提交,所以此處commit只能是HEAD,只能與上一次提交對比,得到的結果與2.1是一致的。為了充分展示這個功能,我們將此次的README.md的改動先提交到倉庫。

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

然后對README.md再修改一次增加新一行內容"# second update"。現在我們再來查看README.md跨級變動(HEAD表示是最近一次commit,HEAD^表示上一次commit,HEAD~100表示上100次commit):

// 查看README.md與最近一次commit的變化(等同于當前變化)
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

對于README.md文件的第二次改動僅是用于演示跨越變動對比的功能,為不影響后續講解,我們現在將這個變動恢復(文件編輯器打開文件,直接刪除"# second update")。

2.3查看文件歷史變更(倉庫vs倉庫)git diff [commit] [commit]

gittest倉庫目前已有2次提交,讓我們直接比對這兩次提交。Note:Git每次commit都會產生一個唯一ID(SHA-1號)用于記錄這個commit,可在git commit/git push命令的返回結果里看到。

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
聲明:本內容為作者獨立觀點,不代表電子星球立場。未經允許不得轉載。授權事宜與稿件投訴,請聯系:editor@netbroad.com
覺得內容不錯的朋友,別忘了一鍵三連哦!
贊 0
收藏 1
關注 41
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 国产高潮在线观看视频 | 无码专区永久免费AV网站 | 日日躁夜夜躁狠狠躁aⅴ蜜 h视频欧美 | 国产村民一二三区 | 九九影院理论片私人影院 | 亚洲精品无码av人在线观看国产 | 亚洲AV永久无码嘿嘿嘿嘿 | 成年无码AV片在线狼人 | 手机在线观看日韩av | 深夜福利视频一区二区 | 狠狠色噜噜狠狠狠狠米奇7777奇米 | 亚洲AV一二三又爽又色又色 | 日韩美香港a一级毛片免费 奇米影视欧美 | 国产高潮久久 | 亚洲天堂男人 | 中文亚洲欧美日韩无线码 | 伊人网页 | 国产高清在线 | 乱码精品一区二区三区 | 波多野结衣在线视频免费观看 | 2022国产在线 | 结婚被群Cao到合不拢腿高H | 最近中文字幕在线视频 | 公妇乱淫中文字幕 | 国产小视频一区 | 久久久久人妻精品一区三寸蜜桃 | 大地资源色婷婷视频在线 | 97无码超碰国产一区 | 久久亚洲激情 | 成人啪啪色婷婷久 | 欧美曰批精品免费视频 | 成人黄色激情网 | 国产精品国一国二在线 | 91免费看| 九色porny丨首页入口网页 | 最近韩国动漫hd免费观看 | 成人午夜大片免费看爽爽爽 | 激情毛片| 91网页版在线观看 | 国产区一区二区在线观看 | 青草青草久热精品 |