gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

深入分析Git基本工作原理

本篇文章給大家帶來了關于Git的相關知識,其中主要介紹了git的基本工作原理,入門級教程,通過玩轉Git本地倉庫,幫助新手快速入手Git,希望對大家有幫助。

深入分析Git基本工作原理

推薦學習:《Git學習教程》

一、分區及工作流程

1. Git分區

Git的分區包括工作區、暫存區、本地倉庫(本地版本庫)、遠程倉庫(遠程版本庫)。

  1. 工作區
    工作區(Workspace)即本地代碼所在的目錄,同時也是存放 .git/ (本地倉庫)的目錄。

  2. 暫存區
    暫存區(Index/Stage)是工作區和本地倉庫的緩存空間,里面記錄著即將提交給本地倉庫(版本庫)的文件修改信息,.git/ 目錄里的index文件就是暫存區。

  3. 本地倉庫
    本地倉庫(Repository)也稱本地庫或版本庫,存放了本地的所有版本(commit提交記錄),本地倉庫的文件都在 .git/ 目錄中。

  4. 遠程倉庫
    遠程倉庫(Remote)在網絡上,GitHub、Gitee和GitLab都能創建遠程倉庫,和本地倉庫一樣,遠程倉庫存放的也是不同的代碼版本,只是這些版本可以來自多個本地倉庫。

2. 工作流程

——————————————————下圖來源網絡———————————————————
深入分析Git基本工作原理

上圖生動地描述了Git不同分區之間的操作命令。

  • 假如要實現上傳代碼功能,工作區使用add添加文件到暫存區,暫存區再通過commit提交版本給本地倉庫,最后本地倉庫使用push將版本推送到遠程倉庫;
  • 工作區修改的文件可以通過checkout命令從本地倉庫或暫存區恢復;如果要將工作區某分支的代碼更新為遠程倉庫最新版本,可以使用pull命令;
  • 對遠程倉庫使用clone可以將遠程倉庫主分支拷貝到本地倉庫,fetch命令與pull類似,只是pull會合并本地代碼,而fetch只會把最新版本抓取到本地版本庫,不考慮本地倉庫是否有新增。

二、本地倉庫初始化

1. git init

本地倉庫(版本庫)需要使用 git init 命令來創建(也可以直接從遠程倉庫克隆,后面介紹)。
進入工作區(代碼存放目錄),輸入git init,git會在工作區新建一個.git/目錄:
深入分析Git基本工作原理

2. .git/目錄簡單介紹

深入分析Git基本工作原理
在一個新建的.git/目錄中,有3個文本文件:

  • config存放了本地倉庫的配置信息;
  • description用來描述倉庫的名字;
  • HEAD為本地倉庫當前分支,默認為master,指向了refs/heads/master,可見refs/目錄主要存放一些分支信息;

后面在對本地倉庫進行操作時,還會產生其他文件,比如logs/——保存提交的記錄,index——暫存區。

【注意】 千萬不要手動更改.git/里的文件,可能會破壞本地倉庫的結構,造成不良后果。

三、用戶信息配置

1. 用戶名和郵箱配置介紹

初始化本地倉庫后的第一件事情就是給本地倉庫添加用戶配置信息,包括用戶名和郵箱地址,這里的用戶名和郵箱地址和托管平臺(如gitee)的賬戶沒有直接關系,它唯一的作用就是讓別的用戶或托管平臺知道代碼的上傳者信息,郵箱亂填也不會導致不能上傳代碼。

比如下面我用“張三”和“李四”上傳了代碼,郵箱地址不是真實存在的,同樣可以上傳成功:(commit信息出了點意外)
深入分析Git基本工作原理
李四的郵箱地址顯然不是真實的。
深入分析Git基本工作原理
由于“張三”和“李四”的郵箱沒有在gitee綁定賬戶,所以點擊它們頭像時,不會顯示用戶信息,如果用戶配置里填寫了gitee賬號的提交郵箱,則可以在gitee上查看上傳者賬號信息。
深入分析Git基本工作原理
gitee用戶的提交郵箱,可以在gitee->個人主頁->個人設置->郵箱管理中設置和查看:
深入分析Git基本工作原理

2.使用git config配置用戶信息

講了那么多用戶名和郵箱的注意事項,其實用戶信息配置十分簡單:

git config --global user.name "your name"git config --global user.email "your email"

user.name 后接用戶名,任意填寫。
user.email 后接用戶郵箱,任意填寫。
–global 為配置全局屬性
深入分析Git基本工作原理
提交代碼到本地倉庫時,git會先檢索本地倉庫的.git/config文件,如果沒有user的信息,則使用全局的配置文件(符合就近原則)。

全局配置文件存放位置為 系統用戶目錄/用戶名/.gitconfig,里面只有user屬性。
深入分析Git基本工作原理

不加–global時,僅設置本地倉庫的用戶配置,本地倉庫用戶配置信息存放位置:.git/config
深入分析Git基本工作原理
上圖我僅設置了本地配置的用戶名,此時如果提交修改到本地倉庫,提交記錄(下圖)中用戶名使用本地配置,因為本地沒有配置用戶郵箱,所以郵箱依然使用全局配置中指定的郵箱。
深入分析Git基本工作原理

四、管理暫存區文件

配置完用戶信息后,我們就可以開始考慮提交代碼了,但是有時候,我們并不想把整個工作區的文件都提交到本地倉庫(版本庫)。暫存區(index/stage)的存在,替我們解決了這個困擾,我們可以先把代碼文件添加到暫存區,如果覺得還需要改動,可以將文件從暫存區刪除,直到我們覺得文件選擇得差不多了,再進行下一步(提交到本地倉庫)。

1. Git文件狀態

在管理暫存區之前,我們還需要了解工作區文件的幾種狀態:

  • Untracked 未跟蹤,工作區中沒有加入過暫存區的文件,不參與版本控制;
  • Unmodified 未修改,加入版本控制,但和版本庫中文件快照相同;
  • Modified 已修改,加入版本控制,而且和上次加入版本庫時的快照不同;
  • Staged 已暫存,下一步可以提交到本地倉庫(版本庫)。

——————————————————下圖來源網絡———————————————————
深入分析Git基本工作原理
git status命令可以用來查看工作區文件當前的狀態:

#查看特定文件的狀態 git status [filename]#查看所有文件狀態 git status  #精簡的方式顯示文件狀態 git status -s

2. 添加文件到暫存區

先查看工作區所有文件的狀態,發現還沒有任何文件:
深入分析Git基本工作原理

現在創建3個文件,再次使用git status(-s表示精簡顯示),3個文件的狀態為Untracked,??為精簡顯示下Untracked的標志,意思是新創的文件沒有被本地倉庫(版本庫)跟蹤。
深入分析Git基本工作原理
git add [文件…] 可以添加一個或多個文件到暫存區,使文件狀態變為Staged,A表示該文件被add到暫存區。
深入分析Git基本工作原理
也可以使用 git add . 或 git add -A 將工作區所有文件添加到暫存庫(除了.gitignore里聲明的文件,本文暫不介紹)。
深入分析Git基本工作原理

3. 刪除暫存區的文件

既然可以向暫存區添加文件,那么反向操作必然也不能少,git rm –cached [文件…] 命令可以將暫存區的文件移除,使其恢復到Untracked狀態。
深入分析Git基本工作原理

4. 文件修改管理

如果已經存入暫存區,但在文件提交到本地倉庫前,我們對其進行了修改,那么它的狀態將變為Modified。
深入分析Git基本工作原理
對于Modified狀態的文件,我們可以使用git add將修改后的版本加入到暫存區,也可以使用git checkout -- [file...]將工作區的該文件恢復到暫存區的版本。

git add a.c重新添加a.c到暫存區:
深入分析Git基本工作原理
下圖為使用git checkout -- a.c從暫存區恢復a.c文件,下圖中我沒有加 “ –”,它的作用是讓checkout不檢測任何其他選項參數,目的是防止該命令把a.c當做一個分支(checkout 還有一個作用是切換分支)。
深入分析Git基本工作原理
對Modified狀態下的文件使用 git diff 可以得出文件修改的詳細記錄,git diff和diff命令雖然作用都是對比文件,但git diff的作用是對比不同的狀態下的同一文件,而diff用來對比兩個不同的文件。
深入分析Git基本工作原理

五、提交文件到本地倉庫

文件添加到暫存區的目的就是將其提交到本地倉庫(版本庫),提交命令為git commit -m “message”

我們可以在commit 后面添加文件,這樣能指定提交的文件:
深入分析Git基本工作原理
通過git log 可以查看提交記錄,HEAD為本地倉庫當前分支,指向主分支master:
深入分析Git基本工作原理
直接使用 git commit -m “message” 可以將整個暫存區都提交到本地倉庫:

深入分析Git基本工作原理

#以一行的形式顯示所有提交版本: git log --pretty=oneline

深入分析Git基本工作原理

#一行顯示,只顯示哈希值的前7位: git log --oneline

深入分析Git基本工作原理

#顯示歷史提交版本與當前版本的間隔數: git reflog

深入分析Git基本工作原理

六、推送到遠程倉庫

代碼文件提交到本地倉庫后,還需要推送到遠程倉庫進行托管。

1. 創建遠程倉庫

我以碼云為例,遠程倉庫的創建可以通過以下三步實現:
深入分析Git基本工作原理

2. 添加遠程倉庫地址

git remote add <name> <url> 命令可以添加遠程倉庫,name為遠程倉庫地址的別名,自定義,url為倉庫網絡地址。
如果要用https的方式上傳代碼,需要添加遠程倉庫https地址;用ssh上傳代碼,則url填遠程倉庫ssh地址。

先從碼云倉庫主頁將倉庫地址復制下來:
深入分析Git基本工作原理

我將遠程倉庫的本地別名命名為origin:
深入分析Git基本工作原理
遠程倉庫可以設置多個,只要本地別名不沖突即可。

3. 查看遠程倉庫地址

git remote -v 命令可以查看遠程倉庫地址,也可以通過git config -l查看
深入分析Git基本工作原理

4. 刪除遠程倉庫地址

git remote remove <name> 可以刪除本地別名為name的遠程地址:
深入分析Git基本工作原理

5. 推送到遠程倉庫

首先確認遠程倉庫的別名,我當前設置的遠程倉庫https協議地址對應的別名為https,ssh協議地址對應的別名為ssh,這兩個地址其實是一個倉庫,只是協議不同。
深入分析Git基本工作原理

https上傳

git push name可以實現本地倉庫的上傳,name為遠程倉庫在配置文件中的別名,使用https上傳,需要輸入賬號和密碼才能完成上傳,Window系統會自動保存賬號和密碼,如果想修改Window已經保存的用戶名和密碼,可以參考修改Gitee登錄憑據。
有時第一次上傳會出現不成功的情況,可以嘗試使用git push -u name master,該命令的作用是將 name 倉庫的主分支作為上流分支,-u和–set-upstream作用相同。
深入分析Git基本工作原理
深入分析Git基本工作原理
深入分析Git基本工作原理

ssh上傳

如果要使用ssh上傳,需要先生成SSH密匙,并將公匙保存到gitee個人設置的SSH公匙設置中,具體過程可以參考:生成SSH密匙,實現代碼上傳
有時第一次上傳會出現不成功的情況,可以嘗試使用git push -u name master,該命令的作用是將 name 倉庫的主分支作為上流分支,-u和–set-upstream作用相同。
深入分析Git基本工作原理
深入分析Git基本工作原理

七、從遠程倉庫clone、fetch或pull

1. 克隆遠程倉庫到本地

git的克隆可以將遠程倉庫拷貝到本地,同時自動進行本地倉庫的初始化。
在任意目錄下打開Git bash,輸入 git clone <repo> [<dir>],repo為遠程倉庫網址,dir為克隆倉庫的存放路徑(可以不用提前創建),如果不填,則默認為遠程倉庫名(不是本地別名)。
[注意]:clone和push一樣需要密碼。
深入分析Git基本工作原理
克隆成功,進入該倉庫目錄,和上傳時的工作區一模一樣,提交日志也相同。
深入分析Git基本工作原理

2. 獲取遠程倉庫(fetch)

git fetch的作用是將遠程倉庫的分支拷貝到本地倉庫,并把最新版本保存在FETCH_HEAD分支,獲取遠程倉庫分支后,還需手動將其合并到當前分支。
命令格式: git fetch [<repository>] ,repository為遠程倉庫的網絡地址。
git merge <分支名>用來合并分支
深入分析Git基本工作原理

3. 拉取遠程倉庫(pull)

git pull和git fetch類似,但git pull會自動將遠程倉庫的分支合并到本地的當前分支。
深入分析Git基本工作原理

推薦學習:《Git視頻教程》

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
天天爽天天爽夜夜爽| 四虎精品欧美一区二区免费| 免费看av软件| 久久出品必属精品| 奇米影视四色在线| 最新天堂在线视频| 国产在线视频三区| 青青草视频国产| 精品一区二区三区无码视频| 丁香色欲久久久久久综合网| 50度灰在线观看| 日韩国产欧美亚洲| 国产精品69页| 超碰在线免费av| 男人c女人视频| 国产二区视频在线播放| 波多野结衣50连登视频| 91精品无人成人www| 伊人成人免费视频| 成人午夜视频在线观看免费| 男女猛烈激情xx00免费视频| 丁香啪啪综合成人亚洲| 不卡的在线视频| 永久免费看av| 日韩精品一区二区三区色欲av| 九色porny自拍| 黑人巨大国产9丨视频| 欧美亚洲国产成人| 成人不卡免费视频| 久久亚洲中文字幕无码| 日韩视频在线免费看| 亚洲无在线观看| 久色视频在线播放| 爱爱爱爱免费视频| www.com毛片| 男人的天堂成人| 国产精品沙发午睡系列| 中文字幕在线视频一区二区三区| 9久久9毛片又大又硬又粗| 亚洲另类第一页| 国产黄页在线观看| 性做爰过程免费播放| www.国产区| 免费特级黄色片| 日本黄色播放器| www.夜夜爽| 国产淫片av片久久久久久| 国产高清不卡无码视频| mm131国产精品| 欧美精品一区免费| 久久久久久久香蕉| 中文字幕第50页| 一级 黄 色 片一| 久久人妻精品白浆国产| 天堂8在线天堂资源bt| 国产精品久久久久久久av福利| 日本精品www| 69堂免费视频| 草草久久久无码国产专区| 日韩一级免费看| 久久久久久久久久久综合| 波多野结衣国产精品| 亚洲综合日韩欧美| 亚洲久久中文字幕| 亚洲一级免费在线观看| 波多野结衣天堂| 182午夜在线观看| 超碰成人在线播放| 一道本在线免费视频| 人人干人人干人人| 加勒比av中文字幕| 中文字幕超清在线免费观看| 亚洲欧美一二三| 国产欧美精品aaaaaa片| 欧美午夜性视频| 久久久久人妻精品一区三寸| 日韩精品一区二区三区久久| 熟妇人妻无乱码中文字幕真矢织江| 久久精品99国产| 久久久精品高清| 一二三在线视频| 青青青青草视频| 欧美日韩怡红院| 欧美 另类 交| 3d动漫一区二区三区| 国产精品拍拍拍| 欧美激情第四页| 阿v天堂2017| 中文字幕第38页| 久久成人福利视频| 北条麻妃在线视频| 1314成人网| 国产熟女高潮视频| 中文字幕一区二区在线观看视频 | 国产中文字幕乱人伦在线观看| 和岳每晚弄的高潮嗷嗷叫视频 | 成人黄色一级大片| 日韩精品手机在线观看| 成年人免费在线播放| 亚洲综合激情视频| 91国视频在线| 国产成人免费高清视频| 日韩精品一区二区三区久久| 一区二区在线免费看| 青青草精品视频在线| 国产5g成人5g天天爽| 欧美亚洲一二三区| 久久国产精品免费观看| 亚洲国产日韩欧美在线观看| 久久久久久人妻一区二区三区| 丝袜制服一区二区三区| 99在线免费视频观看| 亚洲精品第三页| 国产v亚洲v天堂无码久久久| 妞干网视频在线观看| 不用播放器的免费av| 99精品免费在线观看| 波多野结衣综合网| 热久久最新网址| 日本一区二区免费高清视频| 美女少妇一区二区| 97视频在线免费播放| 成人性生活视频免费看| 精品日韩在线播放| 91视频福利网| 青娱乐国产精品视频| 国产女同无遮挡互慰高潮91| 天天操,天天操| 男人添女人下面免费视频| 老司机午夜av| 能看的毛片网站| wwwwww.色| 孩娇小videos精品| 中文字幕线观看| 四虎成人在线播放| av动漫免费观看| 影音先锋成人资源网站| 17c丨国产丨精品视频| 国产精品久久久久7777| 91丨porny丨探花| 日韩欧美一区三区| 手机看片福利日韩| 一区二区三区 欧美| 欧美丝袜在线观看| 亚洲精品偷拍视频| 欧美高清中文字幕| 黄色一级一级片| 亚洲图色中文字幕| 日韩欧美猛交xxxxx无码| 黄色www网站| 乌克兰美女av| 久久最新免费视频| 日韩av高清在线看片| 美女一区二区三区视频| 超碰在线资源站| 日韩av在线播放不卡| 欧美日韩在线不卡视频| 一区二区三区国产好的精华液| 久久香蕉视频网站| 成人久久久久久久久| 亚洲男人天堂2021| 欧美视频免费看欧美视频| 在线观看的毛片| 青青草综合在线| 人人爽人人av| www.国产在线视频| 伊人色在线观看| 91精品91久久久中77777老牛| 中文字幕 日韩 欧美| av在线播放亚洲| 黄色a级三级三级三级| 日本久久久精品视频| 91九色国产ts另类人妖| 黄色片视频在线播放| av在线免费观看国产| 色一情一区二区三区| 国产午夜福利100集发布| 亚洲欧美日韩不卡| 色婷婷综合久久久久中文字幕| 免费看黄色a级片| 午夜一级免费视频| 欧美性久久久久| 欧美一级片免费播放| 国产专区在线视频| gogogo免费高清日本写真| 亚洲成人av免费看| 日本少妇高潮喷水视频| 日韩精品在线观看av| 激情五月五月婷婷| 午夜啪啪小视频| 亚洲第一中文av| 青青草精品视频在线观看| 黄色av网址在线播放| 国产 日韩 亚洲 欧美| 91.com在线| 日韩中字在线观看| 亚洲 自拍 另类小说综合图区| 国产一区二区三区在线免费| 国产日韩第一页| 国产又粗又猛又爽又黄的网站|