欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

git 入門(mén)教程之本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)的本質(zhì)介紹

 更新時(shí)間:2020年08月05日 09:04:51   作者:雪之夢(mèng)技術(shù)驛站  
本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)在本質(zhì)上沒(méi)有太大區(qū)別,只不過(guò)一個(gè)是本地電腦,一個(gè)是遠(yuǎn)程電腦.這篇文章主要介紹了git 入門(mén)教程之本地和遠(yuǎn)程倉(cāng)庫(kù)的本質(zhì)介紹,需要的朋友可以參考下

本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)在本質(zhì)上沒(méi)有太大區(qū)別,只不過(guò)一個(gè)是本地電腦,一個(gè)是遠(yuǎn)程電腦.

遠(yuǎn)程倉(cāng)庫(kù)不一定非得是 github 那種專門(mén)的"中央服務(wù)器",甚至局域網(wǎng)的另外一臺(tái)電腦也可以充當(dāng)"中央服務(wù)器"的角色,因?yàn)樗嬖诘淖畛跄康闹皇欠奖愦蠹医粨Q彼此的提交記錄而已!

所以本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)的基本行為應(yīng)該是一致的,約定俗成的規(guī)定是遠(yuǎn)程倉(cāng)庫(kù)一般不直接參與日常開(kāi)發(fā)工作,主要作為項(xiàng)目托管中心.

某些自動(dòng)化持續(xù)集成環(huán)境中也可能會(huì)直接操作遠(yuǎn)程倉(cāng)庫(kù),這時(shí)遠(yuǎn)程倉(cāng)庫(kù)就真的和本地倉(cāng)庫(kù)沒(méi)什么區(qū)別了!

個(gè)人開(kāi)發(fā)常用命令

個(gè)人開(kāi)發(fā)看重的是效率,同時(shí)兼顧下版本控制的話算是是錦上添花,git 的本地倉(cāng)庫(kù)是本地備份,而遠(yuǎn)程倉(cāng)庫(kù)則是網(wǎng)盤(pán)備份.

git init : 初始化本地項(xiàng)目

將本地項(xiàng)目初始化 git 項(xiàng)目,直觀表現(xiàn)是在該項(xiàng)目同級(jí)目錄下多了 .git 隱藏目錄,其存儲(chǔ)著 git 版本庫(kù)相關(guān)信息.

此后當(dāng)前項(xiàng)目便具備了本地管理的能力,可以與 git 進(jìn)行交互.

git clone : 克隆遠(yuǎn)程項(xiàng)目

git init 一樣的作用,也是創(chuàng)建本地倉(cāng)庫(kù),只不過(guò) git init 是直接將本地項(xiàng)目作為本地倉(cāng)庫(kù),而git clone 是將遠(yuǎn)程項(xiàng)目克隆到本地并作為本地倉(cāng)庫(kù).

由此可見(jiàn),git clonegit init 多了一層遠(yuǎn)程倉(cāng)庫(kù)的概念.

git add : 添加文件

將工作區(qū)的提交記錄添加到暫存區(qū),暫存區(qū)是工作區(qū)和版本庫(kù)交互的橋梁,暫存區(qū)積累到一定量的提交記錄時(shí)可以批量提交到版本庫(kù),這一點(diǎn)暫存區(qū)有點(diǎn)像緩存.

git commit : 提交文件

將暫存區(qū)的版本提交到版本庫(kù),從而形成工作區(qū)->暫存區(qū)->版本庫(kù)的基本鏈路,本地工作區(qū)的版本控制流程大致如此.

git push : 推送文件

如果是使用 git clone 命令克隆的本地項(xiàng)目,當(dāng)工作到一定程度時(shí)可能需要將這部分工作成果推送到遠(yuǎn)程倉(cāng)庫(kù),這時(shí)候使用 git push 命令完成本地版本的推送流程.

如果是使用 git init 命令初始化的本地項(xiàng)目,可能沒(méi)有遠(yuǎn)程倉(cāng)庫(kù),自然也就不需要推送.如果后來(lái)創(chuàng)建了遠(yuǎn)程倉(cāng)庫(kù),那么你自然是想要將本地倉(cāng)庫(kù)推送到遠(yuǎn)程倉(cāng)庫(kù)的,因此你需要準(zhǔn)確告訴 git 你要推送到哪個(gè)遠(yuǎn)程倉(cāng)庫(kù).
使用 git remote add origin git@github.com:username/repos.git 命令添加遠(yuǎn)程倉(cāng)庫(kù)信息,這樣就建立了本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)的關(guān)聯(lián),以后就可以正常推送到遠(yuǎn)程倉(cāng)庫(kù)了.

團(tuán)隊(duì)開(kāi)發(fā)常用命令

團(tuán)隊(duì)開(kāi)發(fā)注重的不僅是個(gè)人效率還有團(tuán)隊(duì)的整體進(jìn)度,隨著企業(yè)級(jí)開(kāi)發(fā)的日趨復(fù)雜化,不再是一個(gè)人能夠獨(dú)立完成的,更何況時(shí)間也不允許慢慢完成,大多數(shù)公司采用的是人力換時(shí)間的方式,團(tuán)隊(duì)并行開(kāi)發(fā)來(lái)縮短整個(gè)項(xiàng)目周期,這種復(fù)雜需求下正是 git 大展拳腳的好機(jī)會(huì).

項(xiàng)目整體采用并行開(kāi)發(fā)模式,拆解成不同的功能模塊,每個(gè)人負(fù)責(zé)各自模塊,模塊之間相對(duì)獨(dú)立但也不排除存在交集的可能性.對(duì)于每一個(gè)個(gè)體開(kāi)發(fā)者來(lái)說(shuō),既需要版本控制又需要團(tuán)隊(duì)交流.這時(shí)候分支的作用就凸顯出來(lái)了.

根據(jù)項(xiàng)目的業(yè)務(wù)特點(diǎn)將其拆解成不同的功能模塊,這些功能模塊分別代表不同的分支,而這些功能模塊又組成了完整的項(xiàng)目,這就是主干和分支的關(guān)系.

初始時(shí)項(xiàng)目是一個(gè)整體,中間拆解成不同功能模塊,最后再合并成一個(gè)整---"分久必分合久必分".

git branch <branch> : 創(chuàng)建分支

每一個(gè)獨(dú)立的功能模塊被定義成一個(gè)單獨(dú)分支,創(chuàng)建分支的過(guò)程其實(shí)是拆解項(xiàng)目的過(guò)程,創(chuàng)建本地分支后就在分支上開(kāi)發(fā)特有功能,不再關(guān)心其他功能分支.

git checkout <branch> : 切換分支

模塊拆解完成并創(chuàng)建了相應(yīng)的分支后,需要切換到既定分支上才能開(kāi)展自己的工作.

git merge <branch> : 合并分支

沒(méi)有絕對(duì)的獨(dú)立,項(xiàng)目再怎么拆分也是整體的一部分,肯定需要和其他功能模塊發(fā)生關(guān)系,某些情況下需要其他分支的工作成果合并到自己的本地倉(cāng)庫(kù)中,這樣才能完成一次小規(guī)模的組裝.

可以預(yù)期的是,當(dāng)這種組裝足夠多的時(shí)候,最終便會(huì)演變成項(xiàng)目的終極形態(tài),形成一個(gè)整體.

git fetch : 抓取遠(yuǎn)程分支

合并目標(biāo)分支首先需要能夠獲取到目標(biāo)分支的提交記錄,既然每個(gè)功能模塊都是不同的項(xiàng)目成員負(fù)責(zé)開(kāi)發(fā)的,也就不在我們電腦上,所以我們先要將目標(biāo)分支下載到我們本地電腦,然后才能合并該分支到本地分支.

git pull : 拉取遠(yuǎn)程分支

"先下載目標(biāo)分支再合并到本地分支,從而小規(guī)模組成更復(fù)雜更強(qiáng)大的功能",每一次的組裝過(guò)程都需要兩步操作者顯然不符合懶人思維啊,git pull 就是這兩步操作的簡(jiǎn)化命令,先下載再合并就是這么簡(jiǎn)單!

本地和遠(yuǎn)程倉(cāng)庫(kù)的碰撞

不論是個(gè)人開(kāi)發(fā)還是團(tuán)隊(duì)開(kāi)發(fā),我們幾乎習(xí)慣慣站在主動(dòng)方的角度來(lái)思考問(wèn)題,有沒(méi)有想過(guò)當(dāng)遠(yuǎn)程倉(cāng)庫(kù)接收到我們的git pushgit pull 請(qǐng)求時(shí),遠(yuǎn)程倉(cāng)庫(kù)發(fā)什么了什么改變,這種改變對(duì)本地倉(cāng)庫(kù)又有什么影響?

遠(yuǎn)程倉(cāng)庫(kù)(遠(yuǎn)程電腦上的本地倉(cāng)庫(kù))只是眾多分布式電腦上本地倉(cāng)庫(kù)中的一員,說(shuō)它特殊也很特殊,充當(dāng)著"中央服務(wù)器"作用,其余人統(tǒng)一從這里下載或推送;說(shuō)它普通也很普通,和本地電腦上的本地倉(cāng)庫(kù)沒(méi)有什么不同,因?yàn)樗S時(shí)可被任意電腦上的本地倉(cāng)庫(kù)所取代!

揭開(kāi)遠(yuǎn)程倉(cāng)庫(kù)的神秘面紗后,現(xiàn)在我們只需要將其視為普通的本地倉(cāng)庫(kù)一樣對(duì)待即可,然而我們本地電腦上已經(jīng)有了本地倉(cāng)庫(kù),故而需要將遠(yuǎn)程倉(cāng)庫(kù)做一下簡(jiǎn)單標(biāo)識(shí)區(qū)分(origin)稱之為遠(yuǎn)程分支.

先說(shuō)說(shuō) git push 命令做了什么?

  • 對(duì)于本地來(lái)說(shuō),git 將本地倉(cāng)庫(kù)的指定分支推送到遠(yuǎn)程倉(cāng)庫(kù)的相應(yīng)分支,同時(shí)更新了本地倉(cāng)庫(kù)的遠(yuǎn)程分支.
  • 對(duì)于遠(yuǎn)程來(lái)說(shuō),git 接收到本地倉(cāng)庫(kù)的推送請(qǐng)求時(shí)應(yīng)該在相應(yīng)分支上合并本地分支,同時(shí)更新遠(yuǎn)程倉(cāng)庫(kù)的相應(yīng)分支.

只要本地的指定分支成功推送到遠(yuǎn)程的相應(yīng)分支時(shí),對(duì)于本地來(lái)說(shuō),不論是指定分支還是遠(yuǎn)程分支(origin/master)都應(yīng)該是最新?tīng)顟B(tài),因?yàn)橐呀?jīng)與服務(wù)器同步了.

而遠(yuǎn)程接收到此次推送請(qǐng)求時(shí),應(yīng)該嘗試合并此次推送請(qǐng)求,再更新自己的相應(yīng)分支,遠(yuǎn)程合并完成后再通知本地此次推送結(jié)果,如此一來(lái),三端同步,皆大歡喜!

再講講 git pull 命令發(fā)生了什么?

  • 對(duì)于遠(yuǎn)程來(lái)說(shuō),接收到本地的拉取請(qǐng)求時(shí),因?yàn)闆](méi)有新版本需要處理,所以無(wú)需任何操作.
  • 對(duì)于本地來(lái)說(shuō),當(dāng)遠(yuǎn)程倉(cāng)庫(kù)的相應(yīng)分支下載到本地時(shí)應(yīng)該更新遠(yuǎn)程分支狀態(tài),再嘗試合并到本地的相應(yīng)分支.

git pull 命令或者說(shuō)是 git fetch 命令是本地和遠(yuǎn)程通信的方式,所以 origin/master 會(huì)自動(dòng)更新!

小結(jié)

本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)本質(zhì)上沒(méi)有太大區(qū)別, git fetch 是本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)之間的通信途徑,本地倉(cāng)庫(kù)中的遠(yuǎn)程分支(origin/master)保存著它們之間最后一次的通信狀態(tài).

到此這篇關(guān)于git 入門(mén)教程之本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)的本質(zhì)介紹的文章就介紹到這了,更多相關(guān)git 本地和遠(yuǎn)程倉(cāng)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • VSCode插件安裝完成后的配置詳解

    VSCode插件安裝完成后的配置詳解

    這篇文章主要介紹了VSCode插件安裝完成后的配置詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 實(shí)例詳解esp8266解析json數(shù)據(jù)的方法

    實(shí)例詳解esp8266解析json數(shù)據(jù)的方法

    這篇文章主要介紹了實(shí)例詳解esp8266解析json數(shù)據(jù)的方法,主要包括要解析的json文件,反序列化數(shù)據(jù)獲取到對(duì)象中,通過(guò)串口監(jiān)視器輸出解析后的數(shù)據(jù)信息,需要的朋友可以參考下
    2022-03-03
  • 如何將gitLab代碼拉到本地

    如何將gitLab代碼拉到本地

    這篇文章主要介紹了如何將gitLab代碼拉到本地的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • git分支的創(chuàng)建、切換、合并及刪除操作小結(jié)

    git分支的創(chuàng)建、切換、合并及刪除操作小結(jié)

    這篇文章給大家詳細(xì)的介紹了關(guān)于git分支的操作,其中包括查看現(xiàn)存分支、創(chuàng)建分支、切換分支、提交分支、分支合并以及刪除分支,文中給出了詳細(xì)示例代碼,相信對(duì)大家的學(xué)習(xí)和理解很有幫助,有需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11
  • GIT如何修改賬號(hào)密碼重新登錄和保存密碼

    GIT如何修改賬號(hào)密碼重新登錄和保存密碼

    這篇文章主要介紹了GIT如何修改賬號(hào)密碼重新登錄和保存密碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 回車和換行有什么區(qū)別?我們平時(shí)按下的Enter鍵是回車還是換行

    回車和換行有什么區(qū)別?我們平時(shí)按下的Enter鍵是回車還是換行

    如果用過(guò)機(jī)械打字機(jī),就知道回車和換行的區(qū)別了。換行就是把滾筒卷一格,不改變水平位置?;剀嚲褪前阉轿恢脧?fù)位,不卷動(dòng)滾筒
    2011-03-03
  • 架構(gòu)師說(shuō)比起404我們更怕200錯(cuò)誤

    架構(gòu)師說(shuō)比起404我們更怕200錯(cuò)誤

    這篇文章主要為大家介紹了架構(gòu)中404我們更怕200錯(cuò)誤的解決及分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 關(guān)于換行和回車的圖文小結(jié)

    關(guān)于換行和回車的圖文小結(jié)

    不知道大家用這么多年的電腦,寫(xiě)了這么多的程序,對(duì)換行和回車有沒(méi)有一個(gè)認(rèn)識(shí)
    2011-03-03
  • adb shell input keyevent 控制按鍵輸入的數(shù)值(收藏版)

    adb shell input keyevent 控制按鍵輸入的數(shù)值(收藏版)

    adb shell的功能很強(qiáng)大,可以使用很多功能,今天我們說(shuō)下通過(guò)控制按鍵輸入,需要的朋友可以參考下
    2019-10-10
  • vscode怎么編譯運(yùn)行

    vscode怎么編譯運(yùn)行

    本文給大家分享的是vscode怎么一鍵編譯運(yùn)行的方法,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下
    2020-02-02

最新評(píng)論