亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

git 入門教程之本地倉庫和遠程倉庫的本質介紹

2024-07-21 02:03:38
字體:
來源:轉載
供稿:網友

本地倉庫和遠程倉庫在本質上沒有太大區別,只不過一個是本地電腦,一個是遠程電腦.

遠程倉庫不一定非得是 github 那種專門的"中央服務器",甚至局域網的另外一臺電腦也可以充當"中央服務器"的角色,因為它存在的最初目的只是方便大家交換彼此的提交記錄而已!

所以本地倉庫和遠程倉庫的基本行為應該是一致的,約定俗成的規定是遠程倉庫一般不直接參與日常開發工作,主要作為項目托管中心.

某些自動化持續集成環境中也可能會直接操作遠程倉庫,這時遠程倉庫就真的和本地倉庫沒什么區別了!

個人開發常用命令

個人開發看重的是效率,同時兼顧下版本控制的話算是是錦上添花,git 的本地倉庫是本地備份,而遠程倉庫則是網盤備份.

git init : 初始化本地項目

將本地項目初始化 git 項目,直觀表現是在該項目同級目錄下多了 .git 隱藏目錄,其存儲著 git 版本庫相關信息.

此后當前項目便具備了本地管理的能力,可以與 git 進行交互.

git clone : 克隆遠程項目

git init 一樣的作用,也是創建本地倉庫,只不過 git init 是直接將本地項目作為本地倉庫,而git clone 是將遠程項目克隆到本地并作為本地倉庫.

由此可見,git clonegit init 多了一層遠程倉庫的概念.

git add : 添加文件

將工作區的提交記錄添加到暫存區,暫存區是工作區和版本庫交互的橋梁,暫存區積累到一定量的提交記錄時可以批量提交到版本庫,這一點暫存區有點像緩存.

git commit : 提交文件

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

git push : 推送文件

如果是使用 git clone 命令克隆的本地項目,當工作到一定程度時可能需要將這部分工作成果推送到遠程倉庫,這時候使用 git push 命令完成本地版本的推送流程.

如果是使用 git init 命令初始化的本地項目,可能沒有遠程倉庫,自然也就不需要推送.如果后來創建了遠程倉庫,那么你自然是想要將本地倉庫推送到遠程倉庫的,因此你需要準確告訴 git 你要推送到哪個遠程倉庫.
使用 git remote add origin git@github.com:username/repos.git 命令添加遠程倉庫信息,這樣就建立了本地倉庫和遠程倉庫的關聯,以后就可以正常推送到遠程倉庫了.

團隊開發常用命令

團隊開發注重的不僅是個人效率還有團隊的整體進度,隨著企業級開發的日趨復雜化,不再是一個人能夠獨立完成的,更何況時間也不允許慢慢完成,大多數公司采用的是人力換時間的方式,團隊并行開發來縮短整個項目周期,這種復雜需求下正是 git 大展拳腳的好機會.

項目整體采用并行開發模式,拆解成不同的功能模塊,每個人負責各自模塊,模塊之間相對獨立但也不排除存在交集的可能性.對于每一個個體開發者來說,既需要版本控制又需要團隊交流.這時候分支的作用就凸顯出來了.

根據項目的業務特點將其拆解成不同的功能模塊,這些功能模塊分別代表不同的分支,而這些功能模塊又組成了完整的項目,這就是主干和分支的關系.

初始時項目是一個整體,中間拆解成不同功能模塊,最后再合并成一個整---"分久必分合久必分".

git branch <branch> : 創建分支

每一個獨立的功能模塊被定義成一個單獨分支,創建分支的過程其實是拆解項目的過程,創建本地分支后就在分支上開發特有功能,不再關心其他功能分支.

git checkout <branch> : 切換分支

模塊拆解完成并創建了相應的分支后,需要切換到既定分支上才能開展自己的工作.

git merge <branch> : 合并分支

沒有絕對的獨立,項目再怎么拆分也是整體的一部分,肯定需要和其他功能模塊發生關系,某些情況下需要其他分支的工作成果合并到自己的本地倉庫中,這樣才能完成一次小規模的組裝.

可以預期的是,當這種組裝足夠多的時候,最終便會演變成項目的終極形態,形成一個整體.

git fetch : 抓取遠程分支

合并目標分支首先需要能夠獲取到目標分支的提交記錄,既然每個功能模塊都是不同的項目成員負責開發的,也就不在我們電腦上,所以我們先要將目標分支下載到我們本地電腦,然后才能合并該分支到本地分支.

git pull : 拉取遠程分支

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

本地和遠程倉庫的碰撞

不論是個人開發還是團隊開發,我們幾乎習慣慣站在主動方的角度來思考問題,有沒有想過當遠程倉庫接收到我們的git pushgit pull 請求時,遠程倉庫發什么了什么改變,這種改變對本地倉庫又有什么影響?

遠程倉庫(遠程電腦上的本地倉庫)只是眾多分布式電腦上本地倉庫中的一員,說它特殊也很特殊,充當著"中央服務器"作用,其余人統一從這里下載或推送;說它普通也很普通,和本地電腦上的本地倉庫沒有什么不同,因為它隨時可被任意電腦上的本地倉庫所取代!

揭開遠程倉庫的神秘面紗后,現在我們只需要將其視為普通的本地倉庫一樣對待即可,然而我們本地電腦上已經有了本地倉庫,故而需要將遠程倉庫做一下簡單標識區分(origin)稱之為遠程分支.

先說說 git push 命令做了什么?

  • 對于本地來說,git 將本地倉庫的指定分支推送到遠程倉庫的相應分支,同時更新了本地倉庫的遠程分支.
  • 對于遠程來說,git 接收到本地倉庫的推送請求時應該在相應分支上合并本地分支,同時更新遠程倉庫的相應分支.

只要本地的指定分支成功推送到遠程的相應分支時,對于本地來說,不論是指定分支還是遠程分支(origin/master)都應該是最新狀態,因為已經與服務器同步了.

而遠程接收到此次推送請求時,應該嘗試合并此次推送請求,再更新自己的相應分支,遠程合并完成后再通知本地此次推送結果,如此一來,三端同步,皆大歡喜!

再講講 git pull 命令發生了什么?

  • 對于遠程來說,接收到本地的拉取請求時,因為沒有新版本需要處理,所以無需任何操作.
  • 對于本地來說,當遠程倉庫的相應分支下載到本地時應該更新遠程分支狀態,再嘗試合并到本地的相應分支.

git pull 命令或者說是 git fetch 命令是本地和遠程通信的方式,所以 origin/master 會自動更新!

小結

本地倉庫和遠程倉庫本質上沒有太大區別, git fetch 是本地倉庫和遠程倉庫之間的通信途徑,本地倉庫中的遠程分支(origin/master)保存著它們之間最后一次的通信狀態.

到此這篇關于git 入門教程之本地倉庫和遠程倉庫的本質介紹的文章就介紹到這了,更多相關git 本地和遠程倉庫內容請搜索武林網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91手机视频在线观看| 欧美野外猛男的大粗鳮| 欧美高清视频一区二区| 亚洲人成在线观看网站高清| 亚洲午夜久久久久久久| 欧美一级在线播放| 国产精品99久久久久久人| 日韩av综合中文字幕| 亚洲qvod图片区电影| 亚洲欧洲免费视频| 欧美日韩国产第一页| 成人精品视频久久久久| 久久色在线播放| 综合激情国产一区| 性欧美在线看片a免费观看| 亚洲iv一区二区三区| 国产欧美一区二区三区在线| 久久免费精品日本久久中文字幕| 97免费视频在线播放| 亚洲iv一区二区三区| 丰满岳妇乱一区二区三区| 亚洲成人久久久| www.欧美视频| 国产精品欧美亚洲777777| 亚洲免费影视第一页| 午夜精品一区二区三区在线播放| xxx一区二区| 国产香蕉一区二区三区在线视频| 欧美性开放视频| 国产精品热视频| 日韩中文字幕久久| 欧美日韩免费在线| 日本精品视频在线观看| 777国产偷窥盗摄精品视频| 欧美日韩国产专区| 欧美精品激情blacked18| 欧美韩国理论所午夜片917电影| 狠狠色香婷婷久久亚洲精品| 亚洲电影在线观看| 国模精品视频一区二区三区| 久久综合久久美利坚合众国| 国产精品成人免费视频| 久久精品中文字幕电影| 久久婷婷国产麻豆91天堂| 欧美激情乱人伦一区| 日韩欧美在线第一页| 精品偷拍各种wc美女嘘嘘| 欧美大片网站在线观看| 欧美午夜精品久久久久久久| 91精品国产网站| 亚洲第一网站男人都懂| 日韩av在线免费| 国产精品91免费在线| 欧美激情精品在线| 亚洲大胆美女视频| 久久国产精品久久国产精品| 伊人久久大香线蕉av一区二区| 国产日韩av在线播放| 亚洲乱码av中文一区二区| 亚洲综合日韩在线| 亚洲第一视频网| 国产亚洲欧美日韩美女| 韩国v欧美v日本v亚洲| 亚洲欧美一区二区三区四区| 91精品视频观看| 亚洲电影第1页| 亚洲精品成人av| 亚洲精品v欧美精品v日韩精品| 色久欧美在线视频观看| 亚洲最大av在线| 亚洲第一精品久久忘忧草社区| 欧美日韩加勒比精品一区| 欧美寡妇偷汉性猛交| 欧美精品久久久久久久| 欧美成人免费一级人片100| 亚洲国产成人在线播放| 日韩成人高清在线| 欧美在线视频播放| 免费不卡欧美自拍视频| 色综合伊人色综合网站| 国产精品三级久久久久久电影| 亚洲一品av免费观看| 国产精品极品美女在线观看免费| 精品久久久久久久久久国产| 亚洲国产成人久久综合一区| 亚洲xxxx做受欧美| 欧美一性一乱一交一视频| 91色精品视频在线| 欧美劲爆第一页| 亚洲第一精品自拍| 性视频1819p久久| 伊人成人开心激情综合网| 国产精品999| 91精品视频在线| 精品久久久久久久久久久| 精品调教chinesegay| 性欧美亚洲xxxx乳在线观看| 日本不卡视频在线播放| 亚洲香蕉成人av网站在线观看| 中文国产成人精品| 欧美一乱一性一交一视频| 日韩精品中文字幕有码专区| 欧美黄色片在线观看| 欧美性做爰毛片| 91精品美女在线| 精品视频—区二区三区免费| 久久久久一本一区二区青青蜜月| 亚洲电影在线观看| 国产精品第一页在线| 国产精品伦子伦免费视频| 成人欧美在线视频| 亚洲系列中文字幕| 亚洲最大成人网色| 91中文在线观看| 92版电视剧仙鹤神针在线观看| 精品久久久一区二区| 久久精品国产亚洲一区二区| 亚洲黄色有码视频| 国产精品网站入口| 日韩中文字幕在线观看| 欧美特黄级在线| 久久久久九九九九| 伦伦影院午夜日韩欧美限制| 久久久久国产精品www| 国产精品久久久久久久久久久久| 成人精品在线视频| 亚洲精品之草原avav久久| 国产精品久久久久久一区二区| 亚洲影视九九影院在线观看| 亚洲人成77777在线观看网| 欧日韩不卡在线视频| 亚洲一区制服诱惑| 精品国产乱码久久久久久虫虫漫画| 97香蕉超级碰碰久久免费的优势| 日本高清久久天堂| 亚洲精品一区二区久| 欧美性xxxx在线播放| 中文字幕在线看视频国产欧美| 国产精品视频久| 2021久久精品国产99国产精品| 国内精品久久久久久中文字幕| 久久精品国产一区| 国模私拍视频一区| 中文字幕亚洲色图| 日韩国产在线播放| 青青在线视频一区二区三区| 欧美日韩激情网| 2024亚洲男人天堂| 亚洲日本中文字幕| 97在线视频免费看| 性欧美在线看片a免费观看| 亚洲成人久久电影| 日韩精品免费在线视频观看| 欧美精品一本久久男人的天堂| 伊人久久大香线蕉av一区二区| 国产视频精品在线| 午夜精品久久久久久久白皮肤| 久久99国产综合精品女同| 欧美精品电影在线| 国色天香2019中文字幕在线观看| 欧美乱人伦中文字幕在线| 欧美国产日韩一区二区| 欧美巨乳在线观看| 69精品小视频|