小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

真正理解 git fetch, git pull 以及 FETCH

 liang1234_ 2019-05-03

真正理解 git fetch, git pull 

要講清楚git fetch,git pull,必須要附加講清楚git remote,git merge 、遠(yuǎn)程repo, branch 、 commit-id 以及 FETCH_HEAD。

1. 【git remote】首先, git是一個(gè)分布式的結(jié)構(gòu),這意味著本地和遠(yuǎn)程是一個(gè)相對(duì)的名稱(chēng)。

本地的repo倉(cāng)庫(kù)要與遠(yuǎn)程的repo配合完成版本對(duì)應(yīng)必須要有 git remote子命令,通過(guò)git remote add來(lái)添加當(dāng)前本地長(zhǎng)度的遠(yuǎn)程repo, 有了這個(gè)動(dòng)作本地的repo就知道了當(dāng)遇到git push 的時(shí)候應(yīng)該往哪里提交代碼。

2. 【git branch】其次,git天生就是為了多版本分支管理而創(chuàng)造的,因此分支一說(shuō),不得不提, 分支就相當(dāng)于是為了單獨(dú)記錄軟件的某一個(gè)發(fā)布版本而存在的,既然git是分布式的,便有了本地分支和遠(yuǎn)程分支一說(shuō),git branch 可以查看本地分支, git branch -r  可以用來(lái)查看遠(yuǎn)程分支。 本地分支和遠(yuǎn)程分支在git push 的時(shí)候可以隨意指定,交錯(cuò)對(duì)應(yīng),只要不出現(xiàn)版本從圖即可。

3. 【git merge】再者,git的分布式結(jié)構(gòu)也非常適合多人合作開(kāi)發(fā)不同的功能模塊,此時(shí)如果每個(gè)人都在其各自的分支上開(kāi)發(fā)一個(gè)相對(duì)獨(dú)立的模塊的話(huà),在每次release制作時(shí)都需先將各成員的模塊做一個(gè)合并操作,用于合并各成員的工作成果,完成集成。 此時(shí)需要的就是git merge.

4.【git push 和 commit-id】在每次本地工作完成后,都會(huì)做一個(gè)git commit 操作來(lái)保存當(dāng)前工作到本地的repo, 此時(shí)會(huì)產(chǎn)生一個(gè)commit-id,這是一個(gè)能唯一標(biāo)識(shí)一個(gè)版本的序列號(hào)。 在使用git push后,這個(gè)序列號(hào)還會(huì)同步到遠(yuǎn)程repo。

在理解了以上git要素之后,分析git fetch 和 git pull 就不再困難了。 

 

首先,git fetch 有四種基本用法

1. git fetch            →→ 這將更新git remote 中所有的遠(yuǎn)程repo 所包含分支的最新commit-id, 將其記錄到.git/FETCH_HEAD文件中

2. git fetch remote_repo         →→ 這將更新名稱(chēng)為remote_repo 的遠(yuǎn)程repo上的所有branch的最新commit-id,將其記錄。 

3. git fetch remote_repo remote_branch_name        →→ 這將這將更新名稱(chēng)為remote_repo 的遠(yuǎn)程repo上的分支: remote_branch_name

4. git fetch remote_repo remote_branch_name:local_branch_name       →→ 這將這將更新名稱(chēng)為remote_repo 的遠(yuǎn)程repo上的分支: remote_branch_name ,并在本地創(chuàng)建local_branch_name 本地分支保存遠(yuǎn)端分支的所有數(shù)據(jù)。

 

FETCH_HEAD: 是一個(gè)版本鏈接,記錄在本地的一個(gè)文件中,指向著目前已經(jīng)從遠(yuǎn)程倉(cāng)庫(kù)取下來(lái)的分支的末端版本。

 

git pull 的運(yùn)行過(guò)程:

git pull : 首先,基于本地的FETCH_HEAD記錄,比對(duì)本地的FETCH_HEAD記錄與遠(yuǎn)程倉(cāng)庫(kù)的版本號(hào),然后git fetch 獲得當(dāng)前指向的遠(yuǎn)程分支的后續(xù)版本的數(shù)據(jù),然后再利用git merge將其與本地的當(dāng)前分支合并。

 

參考鏈接 :  

1.https:///topics/4768

2.http:///questions/9237348/what-does-fetch-head-in-git-mean

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多