git克隆代碼庫到本地 git怎么克隆所有分支?
git怎么克隆所有分支?首先,你需要使用$ git clone這個(gè)命令克隆一個(gè)本地庫。之后它會(huì)自動(dòng)克隆一個(gè)master分支(這個(gè)貌似是必須的)。之后不會(huì)克隆任何一個(gè)分支下來的。假定你需要一個(gè)dev(此
git怎么克隆所有分支?
首先,你需要使用$ git clone這個(gè)命令克隆一個(gè)本地庫。
之后它會(huì)自動(dòng)克隆一個(gè)master分支(這個(gè)貌似是必須的)。
之后不會(huì)克隆任何一個(gè)分支下來的。
假定你需要一個(gè)dev(此處假定遠(yuǎn)程庫中已經(jīng)存在此分支,也就是你需要克隆的)分支用于開發(fā)的話,你需要在dev分支上開發(fā),就必須創(chuàng)建遠(yuǎn)程origin的dev分支到本地,于是他用這個(gè)命令創(chuàng)建本地dev分支:
$ git checkout -b dev origin/dev
再同步下:
$ git pull
git克隆不了怎么辦?
將存儲(chǔ)庫克隆到新創(chuàng)建的目錄中,為克隆的存儲(chǔ)庫中的每個(gè)分支創(chuàng)建遠(yuǎn)程跟蹤分支(使用git branch -r可見),并從克隆檢出的存儲(chǔ)庫作為當(dāng)前活動(dòng)分支的初始分支。在克隆之后,沒有參數(shù)的普通git提取將更新所有遠(yuǎn)程跟蹤分支,并且沒有參數(shù)的git pull將另外將遠(yuǎn)程主分支合并到當(dāng)前主分支(如果有的話)。此默認(rèn)配置通過在refs/remotes/origin下創(chuàng)建對(duì)遠(yuǎn)程分支頭的引用,并通過初始化remote.origin.url和remote.origin.fetch配置變量來實(shí)現(xiàn)。執(zhí)行遠(yuǎn)程操作的第一步,通常是從遠(yuǎn)程主機(jī)克隆一個(gè)版本庫,這時(shí)就要用到git clone命令。比如,克隆jQuery的版本庫。該命令會(huì)在本地主機(jī)生成一個(gè)目錄,與遠(yuǎn)程主機(jī)的版本庫同名。如果要指定不同的目錄名,可以將目錄名作為git clone命令的第二個(gè)參數(shù)。git clone支持多種協(xié)議,除了HTTP(s)以外,還支持SSH、Git、本地文件協(xié)議等。用法1:git clone
為什么還有那么多人用SVN?
先說結(jié)果: git 在有些情況下 確實(shí) 比 svn好用,但并不能取代 svn
第一回合:
git 是分布式的版本控制系統(tǒng),可以不用固定的 ‘服務(wù)端’ ,更適合研發(fā)人員。而svn是集中管理的版本控制系統(tǒng),有一個(gè)固定服務(wù)端。但我認(rèn)為要分場合,某些情況下分布式的不一定比集中管理的好,所以這一回合打平了。
第二回合:
git的分支很好用,很強(qiáng),svn的分支就有點(diǎn)雞肋了,svn的分支就是 svn copy 復(fù)制了一個(gè)完整的項(xiàng)目。 這一回合,git 優(yōu)勢明顯。
第三回合:
提交,更新或合并代碼的時(shí)候經(jīng)常會(huì)報(bào)錯(cuò),git的提示很 ‘善解人意’,很好解決錯(cuò)誤,svn 的提示就有點(diǎn)差強(qiáng)人意了,這一回合,依然是 git 有優(yōu)勢。
第四回合:
svn 對(duì)目錄的權(quán)限控制很好,可以根據(jù)目錄進(jìn)行 更新和提交,這在有些時(shí)候很有用。 而 git 不能對(duì)目錄做權(quán)限控制。這一回合 svn 優(yōu)勢明顯。
舉個(gè)例子:
我們公司 研發(fā)人員用的是git , 美術(shù)和產(chǎn)品都是用的svn,美術(shù)和產(chǎn)品經(jīng)常把需求和資源放到svn,可以根據(jù)目錄下載,不用整個(gè)項(xiàng)目都下載。而且svn在windows 系統(tǒng)下有一個(gè)很出名的軟件 TortoiseSVN ,有中文版的,用起來很方便。
Git目前越來越受關(guān)注,它有哪些優(yōu)點(diǎn)呢?
本人七年編程經(jīng)驗(yàn),了解互聯(lián)網(wǎng)和編程相關(guān)知識(shí),歡迎關(guān)注本人頭條號(hào)。
版本管理現(xiàn)在主流使用svn和Git,而maven主要是解決模塊依賴的問題,這里不做討論。
相較于svn,git是分布式的。svn基于revisions,要提交到中心服務(wù)器上。而git是分布式的,每一臺(tái)有代碼權(quán)限的機(jī)器都是一個(gè)服務(wù)器。檢出代碼后,所有的記錄都在本地,本地提交和分支管理都可以直接提交到本地,并不需要網(wǎng)絡(luò)支持,只有在與遠(yuǎn)程服務(wù)器同步時(shí)才需要網(wǎng)絡(luò)。
另外,使用Git代碼安全性更高,即便遠(yuǎn)程服務(wù)器損壞,任何一個(gè)帶有代碼的機(jī)器都帶有所有的記錄,并不會(huì)造成歷史記錄的丟失。
Git來做commit和branch非常方便,任何開發(fā)人員都可以在本地創(chuàng)建分支和提交到本地,同時(shí)代碼合并非??焖俜奖?,而svn要通過復(fù)雜的算法將公共祖先前的所有revisions重演才能完成合并的操作。
包括Github、osChina等代碼管理網(wǎng)站都使用Git來做代碼管理,平常開發(fā)者學(xué)習(xí)和參與開源都非常方便。
Git使用命令行非常方便,正常大頻率使用的也六十多個(gè)命令,而且操作快速靈活。
當(dāng)然,任何事物各有優(yōu)缺,而svn和Git學(xué)習(xí)非常簡單即可應(yīng)對(duì)工作中的代碼管理。所以用到什么就了解下才能在不同公司和團(tuán)隊(duì)很快適應(yīng)。
希望對(duì)你有幫助,也歡迎大家留言討論。