『極簡(jiǎn)』一盤文章讓你學(xué)會(huì)使用Git

我為什么要用Git


常規(guī)開發(fā)中雕憔,我們經(jīng)常遇到的一個(gè)問(wèn)題就是而叼,當(dāng)團(tuán)隊(duì)協(xié)作開始的時(shí)候—比如小張和小王都是程序員身笤,他倆開發(fā)的是同一個(gè)系統(tǒng),小張負(fù)責(zé)寫A頁(yè)面葵陵,小王負(fù)責(zé)寫B(tài)頁(yè)面液荸,最后,他倆用u盤把代碼拷給其中一個(gè)人脱篙,再合并到一起娇钱。

這個(gè)操作猛一看,好像也沒什么問(wèn)題绊困。最后也得到了想要的結(jié)果文搂,網(wǎng)站開發(fā)完了。但是秤朗,如果我們想要把公司考評(píng)kpi和版本控制加入到小張和小王的工作流中细疚,增加一個(gè)審核環(huán)節(jié),讓每個(gè)版本的迭代都可以經(jīng)過(guò)開發(fā)—>測(cè)試—>發(fā)布川梅,就很困難了。<u>因?yàn)榇a并不在管理員手中然遏,而是在開發(fā)者手中贫途。</u>開發(fā)者A如果請(qǐng)假了,并且開發(fā)者B需要開發(fā)者A頁(yè)面上的部分邏輯待侵,他能做就只有等待丢早,因?yàn)樗枰戎_發(fā)者A用u盤把數(shù)據(jù)拷貝給他才能繼續(xù)開發(fā)。

于是Git誕生了,他的主要作用是記錄開發(fā)者的信息怨酝,并且提供多種代碼提交方式傀缩,還可以對(duì)版本進(jìn)行管理,關(guān)鍵時(shí)刻农猬,可以回滾代碼赡艰,防止問(wèn)題出現(xiàn)。尤其需要強(qiáng)調(diào)的斤葱,就是多人協(xié)作慷垮。Git就是為了多人協(xié)作開發(fā)一套代碼而誕生的,他里面的分支機(jī)制揍堕,讓多人開發(fā)時(shí)互不干涉料身,你可以輕松的拉取主干上的代碼跟自己本地匹配。最后開發(fā)完成的時(shí)候衩茸,再把分支合并入主干芹血,開發(fā)簡(jiǎn)直不要太輕松。

但是楞慈,Git只是一個(gè)提交方式幔烛,他自己是不能運(yùn)作的,我們還需要一個(gè)倉(cāng)庫(kù)抖部。就是存放代碼的地方说贝,現(xiàn)在我們能接觸到倉(cāng)庫(kù)平臺(tái)主要有g(shù)ithub,gitee和gitlab慎颗。在國(guó)內(nèi)我們主要是用gitee碼云乡恕,但是他的代碼是保存到云端。有部分有實(shí)力的公司俯萎,選擇使用gitlab把代碼倉(cāng)庫(kù)保存到自己的服務(wù)器上傲宜,也不失為一種選擇。

倉(cāng)庫(kù)


使用Git之前夫啊,需要我們先選擇用哪個(gè)倉(cāng)庫(kù)函卒,這里我們用gitee為例,因?yàn)榇蟛糠中⌒偷捻?xiàng)目撇眯,在云端管理是最方便的报嵌。

訪問(wèn)gitee.com,創(chuàng)建碼云賬號(hào)以后熊榛,點(diǎn)擊右上角的加號(hào)锚国,新建一個(gè)倉(cāng)庫(kù)。
倉(cāng)庫(kù)的作用就是儲(chǔ)存代碼玄坦, 每個(gè)你項(xiàng)目的開發(fā)者都可以訪問(wèn)倉(cāng)庫(kù)查看現(xiàn)在的開發(fā)進(jìn)度血筑。這里注意绘沉,如果你選擇的是公開倉(cāng)庫(kù),非你項(xiàng)目的開發(fā)者也能看到你的項(xiàng)目豺总,你的項(xiàng)目也就變成了開源項(xiàng)目车伞。

這里多說(shuō)一句,其實(shí)喻喳,編程的本質(zhì)就是分享另玖,如果每個(gè)人都把自己的技術(shù)私有化,那么大家都不用進(jìn)步了沸枯,就是因?yàn)橛辛死鏐ootstrap日矫,Spring Framework等等這種開源框架,我們的代碼世界才會(huì)編的如此豐富多彩绑榴。

倉(cāng)庫(kù)創(chuàng)建完畢以后哪轿,你就能看到里面的文件了,如果你是新項(xiàng)目翔怎,里面應(yīng)該只有一個(gè)README.md窃诉。接下來(lái),我們需要獲取這個(gè)倉(cāng)庫(kù)的地址赤套,就好比你的百度網(wǎng)盤一樣飘痛,都有一個(gè)http路徑。


一般情況下容握,倉(cāng)庫(kù)提供兩種方式宣脉,一種是https,一種是ssh剔氏。https下載比較方便塑猖,但是需要每次都輸入賬號(hào)和密碼。ssh則需要你通過(guò)git生成一個(gè)密鑰谈跛,密鑰只需要生成一次
好處就是不用輸入賬號(hào)密碼了羊苟,如果你是項(xiàng)目的開發(fā)者,可以直接進(jìn)行操作感憾。

好的蜡励,獲取這個(gè)地址以后,關(guān)閉頁(yè)面阻桅,咱們開始安裝Git凉倚。

Git安裝


在git-scm.com可以下載最新版的git。下載安裝以后嫂沉,在你本地新建一個(gè)web文件夾稽寒,點(diǎn)擊右鍵。

此時(shí)你的右鍵菜單中已經(jīng)有了Git GUI here和Git Bash here兩個(gè)新的選項(xiàng)输瓜,點(diǎn)擊第二個(gè)

會(huì)看到這個(gè)界面。

我們接下來(lái)就要在這里輸入Git命令。有些小伙伴尤揣,一看到小黑窗就蒙了搔啊,因?yàn)檫@個(gè)操作沒有圖形化,只有命令行北戏。

不用擔(dān)心负芋,龍哥會(huì)全程帶你操作,并且每一步都會(huì)幫你解答你的困惑嗜愈。

首先輸入

git clone "你的項(xiàng)目地址"

你的項(xiàng)目地址就是旧蛾,倉(cāng)庫(kù)最后克隆/下載,里面復(fù)制的地址蠕嫁。

注意锨天,這里會(huì)出現(xiàn)兩種情況,第一種剃毒,你使用的是https方式病袄,到這里會(huì)讓你輸入賬號(hào)密碼。你直接輸入就可以進(jìn)入下載環(huán)節(jié)赘阀。第二種益缠,你使用的是SSH方式,你此時(shí)需要在本地生成一個(gè)密鑰基公。

新手同學(xué)建議使用https方式幅慌。

如果你使用了SSH也不要慌張。按照一下步驟進(jìn)行轰豆。

先添加全局變量

git config --global user.name "你的用戶名"
git config --global user.email "你的郵箱地址"

然后輸入

ssh-keygen -t rsa -C "你的郵箱地址"

輸入完畢以后胰伍,會(huì)出現(xiàn)一大堆代碼,復(fù)制這個(gè)到你的倉(cāng)庫(kù)SSH管理中即可秒咨。

因?yàn)槊考移脚_(tái)的SSH管理位置都不同喇辽,這里就不做解釋了,但通常是在個(gè)人設(shè)置中雨席,稍微找一下就能找到菩咨。

當(dāng)上面這一步完成以后,你已經(jīng)clone了現(xiàn)故到你的本地陡厘。

使用你的開發(fā)工具打開這個(gè)目錄

可以發(fā)現(xiàn)里面只有一個(gè)文件README.md抽米。這里已經(jīng)跟云端保持一致了。

接下來(lái)我們創(chuàng)建一個(gè)html文件糙置。

隨便寫點(diǎn)東西云茸,我們開始進(jìn)入提交步驟。

這里要注意一點(diǎn)谤饭,就是倉(cāng)庫(kù)默認(rèn)只有一個(gè)master分支标捺,分支的概念你可以理解就是最后要發(fā)布的代碼懊纳,但是,我們作為項(xiàng)目的一份子亡容,不可能直接一次就開發(fā)完成整個(gè)項(xiàng)目了嗤疯,我們肯定是開發(fā)了其中的一個(gè)小部分,這個(gè)部分需要先經(jīng)過(guò)測(cè)試闺兢,才能提交到整體中茂缚。

所以這里我們先創(chuàng)建一個(gè)自己的分支。

輸入:

git branch -a

這一步的目的是列出所有分支屋谭,可以發(fā)現(xiàn)脚囊,現(xiàn)在只有一個(gè)master分支。

然后輸入

git branch test
git checkout test

創(chuàng)建一個(gè)新的test分支桐磁,然后切換到這個(gè)分支上悔耘。

再次列出分支列表,可以發(fā)現(xiàn)我們已經(jīng)切換到test上了所意。

此時(shí)淮逊,我們就可以開始提交我們本地的代碼了。

輸入:

git add .
git commit -m "version1.0.0"
git push testgit push --set-upstream origin test

這三句話的意思是扶踊,選擇項(xiàng)目中的全部文件泄鹏,添加更新說(shuō)明,推送到遠(yuǎn)程分支并綁定秧耗。

其實(shí)第三句話只需要輸入一次备籽,下次你直接輸入git push即可。

這里分井,有一種特殊情況车猬,就是,你跟你的同事尺锚,開發(fā)的是同一個(gè)分支珠闰。此時(shí),你需要先執(zhí)行

git pull

然后再推送你的新代碼瘫辩,否則會(huì)報(bào)沖突伏嗜。

好了。更新代碼并推送就講完了伐厌。最后咱們?cè)僦v一下分支的合并承绸。比如,現(xiàn)在我的頁(yè)面開發(fā)并測(cè)試完了挣轨,我需要合并到主干上军熏,我應(yīng)該怎么做呢?卷扮?

首先切換到master分支

git checkout master
git merge test

這樣兩個(gè)分支就合并完畢啦荡澎!

審核分支合并請(qǐng)求


上面的分支合并有一個(gè)小小的問(wèn)題就是均践,如果你是往master分支上去合并,你需要先確定一下master分支是不是一個(gè)受保護(hù)的分支摩幔,如果是浊猾,你需要到倉(cāng)庫(kù)中,你自己的提交那塊热鞍,去發(fā)起一個(gè)合并申請(qǐng),

發(fā)起申請(qǐng)后編寫你的更新信息衔彻,如果有沖突薇宠,也可以再這里解決沖突的代碼

此時(shí),管理員可以看到你這個(gè)請(qǐng)求

如果此時(shí)管理員點(diǎn)擊merge艰额,你的分支就會(huì)被合并入master

好了澄港,龍哥已經(jīng)帶你粗略的感受了一遍git的提交發(fā)布再到審核管理的流程。不足之處柄沮,還請(qǐng)見諒回梧,如果你喜歡龍哥的文章,請(qǐng)點(diǎn)贊關(guān)注收藏吧祖搓!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末狱意,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子拯欧,更是在濱河造成了極大的恐慌详囤,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件镐作,死亡現(xiàn)場(chǎng)離奇詭異藏姐,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)该贾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門羔杨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人杨蛋,你說(shuō)我怎么就攤上這事兜材。” “怎么了六荒?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵护姆,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我掏击,道長(zhǎng)卵皂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任砚亭,我火速辦了婚禮灯变,結(jié)果婚禮上殴玛,老公的妹妹穿的比我還像新娘。我一直安慰自己添祸,他們只是感情好滚粟,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著刃泌,像睡著了一般凡壤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上耙替,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天亚侠,我揣著相機(jī)與錄音,去河邊找鬼俗扇。 笑死硝烂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的铜幽。 我是一名探鬼主播滞谢,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼除抛!你這毒婦竟也來(lái)了狮杨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤到忽,失蹤者是張志新(化名)和其女友劉穎禾酱,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绘趋,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡颤陶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了陷遮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片滓走。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖帽馋,靈堂內(nèi)的尸體忽然破棺而出搅方,到底是詐尸還是另有隱情,我是刑警寧澤绽族,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布姨涡,位于F島的核電站,受9級(jí)特大地震影響吧慢,放射性物質(zhì)發(fā)生泄漏诗鸭。R本人自食惡果不足惜仰禽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一叫搁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瓢剿,春花似錦、人聲如沸悠轩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)火架。三九已至鉴象,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間何鸡,已是汗流浹背炼列。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留音比,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓氢惋,卻偏偏與公主長(zhǎng)得像洞翩,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子焰望,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容