反正我不喜歡用git

Git原理及使用

二話不說峻堰,先來一張?jiān)韴D

git原理

§Workspace:工作區(qū)

§Index / Stage:暫存區(qū)

§Repository:倉(cāng)庫(kù)區(qū)(或本地倉(cāng)庫(kù))

§Remote:遠(yuǎn)程倉(cāng)庫(kù)

使用過git的人對(duì)這張圖應(yīng)該都不陌生人乓,結(jié)合命令說一下git的大概流程沐兰,之后在補(bǔ)錄其他命令;

1膳算、新建代碼庫(kù)

a)git

init [name],新建一個(gè)目錄,并初始化為代碼庫(kù),如果我記的沒錯(cuò)的話寂屏,這個(gè)過程可以變成手動(dòng)建立一個(gè)文件夾,通過:

git init直接進(jìn)行初始化

2娜搂、拉取代碼迁霎,這個(gè)過程就要結(jié)合上圖了。Git的操作流程是從遠(yuǎn)程代碼庫(kù)remote中百宇,克隆出我們需要的項(xiàng)目代碼考廉,克隆的目的地址就是建立好的本地代碼庫(kù):

a)Bash目錄顯示在本地代碼庫(kù)文件夾下,通過:

i.git clone [url]

b)至于上圖的fetch携御,肯定會(huì)有疑問昌粤,但這里的fetch是下拉本地代碼庫(kù)時(shí)候使用的,稍后介紹pull的時(shí)候會(huì)一并解釋

3啄刹、克隆完之后涮坐,我們的本地倉(cāng)庫(kù)就有了一個(gè)單獨(dú)的項(xiàng)目文件,這個(gè)文件與遠(yuǎn)程的代碼有聯(lián)系誓军。

4袱讹、本地倉(cāng)庫(kù)的文件要同步到遠(yuǎn)程分支上,就需要用到push命令:

a)git push oringin [remote-branch]

5昵时、接下來就是拉分支了廓译,首先我們可以通過:

a) git?branch –r查看遠(yuǎn)程分支

分支查詢

b) git branch –a查看所有分支(包括本地)

c) git?checkout branch –b [branch name]來建立一個(gè)本地分支并切換到該分支下;

d) checkout的作用就是切換當(dāng)前分支债查;

checkout使用

但是這樣的處理非区,當(dāng)前分支與遠(yuǎn)程分支就沒有了關(guān)聯(lián),開發(fā)完成后最多提交到本地代碼庫(kù)盹廷,如果需要上傳到遠(yuǎn)程代碼庫(kù)征绸,就需要按照指示,給一個(gè)指向:

a)git push origin HEAD: [remote-branch]

所以在新建分支的時(shí)候俄占,我們可以直接與遠(yuǎn)程分支綁定好管怠,寫上追蹤:

a)git branch –track [branch name] [remote-branch]

一定會(huì)有人困惑,圖上明明沒有branch這個(gè)命令缸榄,而且checkout是本地代碼庫(kù)和工作區(qū)之間聯(lián)系的命令渤弛,沒錯(cuò)!branch本身是對(duì)分支的操作命令甚带,并不屬于各區(qū)域命令她肯,一旦新建分支佳头,該分支就需要checkout之類的命令來進(jìn)行區(qū)間操作;

6晴氨、拉下來分支康嘉,我們需要不斷的更新分支,這里需要重提一下fetch了籽前,首先先說一步到位的pull操作:

a)圖上就可以看出亭珍,在當(dāng)前工作區(qū),通過:

i.git

pull命令枝哄,可以之前同步遠(yuǎn)程主干上所有的更改肄梨,并且是直接與當(dāng)前代碼合并的;

b)而fetch挠锥,是將代碼同步到本地代碼庫(kù)中峭范,至于要不要同步到當(dāng)前工作區(qū),要不要進(jìn)行其他操作瘪贱,就看你怎么想:

i.git fetch [remote]

ii.區(qū)別一目了然纱控,pull命令直接同步到工作區(qū),合并當(dāng)前代碼菜秦,而fetch只是同步到本地庫(kù)甜害,是否與工作區(qū)代碼合并,需要進(jìn)行單獨(dú)的操作球昨;

7尔店、講了這么多,圖上所示的主要命令還剩下兩個(gè)主慰,add和commit嚣州,一起講了吧,因?yàn)檫@兩個(gè)的操作基本是連著的共螺,這里就要提到git為我們提供的暫存區(qū)了该肴;

8、先看一下項(xiàng)目文件中的目錄藐不,其中有一個(gè)隱藏的.git文件夾

git版本庫(kù)

這個(gè)隱藏的,git文件夾匀哄,這個(gè)是git的版本庫(kù),可以清楚的看到里面的refs里存放著我們項(xiàng)目的標(biāo)簽雏蛮,本地建立過的分支版本涎嚼,遠(yuǎn)程的分支版本等,

其中還有一個(gè)index文件挑秉,記錄著工作區(qū)生成的文件內(nèi)容與暫存對(duì)象庫(kù)object之間的索引法梯。(…這中間有太多想說又沒理解清楚的,待之后明白了再補(bǔ)充犀概,總之立哑,網(wǎng)上很多抄了廖雪峰大神的文章夜惭,沒有一個(gè)講明白的)

9、現(xiàn)在回來說add和commit刁憋,通過add:

a)git?add .可將當(dāng)前目錄中所有文件添加到暫存區(qū)中滥嘴;

git add 命令

b)添加完成之后木蹬,可以通過git status查看當(dāng)前暫存區(qū)文件狀態(tài)(待提交)至耻;

git status 查詢

當(dāng)我們要將代碼存放到本地代碼庫(kù)時(shí),再通過commit命令:

a)git commit –m [message]

--------------------------------------------------------------------------------------------------------------------------

10镊叁、在git正常使用中尘颓,出去基本的拉取,提交晦譬,還要面臨著很多問題疤苹,比如代碼沖突:

a)原因:兩個(gè)分支上一段相同代碼被同時(shí)修改;

b)可通過查找‘<<<<<<<’沖突提示符敛腌,找到?jīng)_突位置卧土;

c)刪掉沖突代碼,并且刪掉沖突提示符像樊,重新提交尤莺,將當(dāng)前分支合到主干:

i.通過[to:master/branch] merge [from:branch/master]合并代碼時(shí),若出現(xiàn)當(dāng)前分支名后帶有MERGING字樣生棍,證明有沖突颤霎,下面會(huì)報(bào)出沖突所在位置;

ii.查看沖突代碼涂滴,留下需要的友酱,刪掉不需要的和沖突提示符;

iii.再次提交代碼柔纵,發(fā)現(xiàn)當(dāng)前分支名稱后的MERGING字樣沒有了缔杉,證明解沖突成功;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末搁料,一起剝皮案震驚了整個(gè)濱河市壮吩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌加缘,老刑警劉巖鸭叙,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異拣宏,居然都是意外死亡沈贝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門勋乾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宋下,“玉大人嗡善,你說我怎么就攤上這事⊙纾” “怎么了罩引?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)枝笨。 經(jīng)常有香客問我袁铐,道長(zhǎng),這世上最難降的妖魔是什么横浑? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任剔桨,我火速辦了婚禮,結(jié)果婚禮上徙融,老公的妹妹穿的比我還像新娘洒缀。我一直安慰自己,他們只是感情好欺冀,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布树绩。 她就那樣靜靜地躺著,像睡著了一般隐轩。 火紅的嫁衣襯著肌膚如雪饺饭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天龙助,我揣著相機(jī)與錄音砰奕,去河邊找鬼。 笑死提鸟,一個(gè)胖子當(dāng)著我的面吹牛军援,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播称勋,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼胸哥,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了赡鲜?” 一聲冷哼從身側(cè)響起空厌,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎银酬,沒想到半個(gè)月后嘲更,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡揩瞪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年赋朦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡宠哄,死狀恐怖壹将,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情毛嫉,我是刑警寧澤诽俯,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站承粤,受9級(jí)特大地震影響暴区,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜密任,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一颜启、第九天 我趴在偏房一處隱蔽的房頂上張望偷俭。 院中可真熱鬧浪讳,春花似錦、人聲如沸涌萤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽负溪。三九已至透揣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間川抡,已是汗流浹背辐真。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留崖堤,地道東北人侍咱。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像密幔,于是被迫代替她去往敵國(guó)和親楔脯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

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

  • 今天朋友問我胯甩,‘你有過喜歡的人嗎昧廷,很喜歡的那種’,“有過偎箫,當(dāng)然有過木柬。”“那怎么沒有嘗試著在一起淹办∶颊恚”“因?yàn)槲耶?dāng)時(shí)是個(gè)...
    半只榴蓮閱讀 333評(píng)論 0 0
  • 關(guān)于記憶 漸漸發(fā)現(xiàn) 初中高中的記憶逐漸消散 至于小學(xué)的就不用提了 我的記憶大概只有70秒 突然很害怕 害怕某一天醒...
    楊洛閱讀 460評(píng)論 0 0
  • 一齐遵、170720 (第三天)小任務(wù) 早晨寂玲,微信中,來自元元老師的問好梗摇,還有今天的小任務(wù)拓哟,“找一個(gè)關(guān)于下雨的故事,畫...
    艷濱閱讀 282評(píng)論 0 1
  • 這個(gè)出軌的電影伶授,真真是要比火遍網(wǎng)絡(luò)的白百何事件好看多了断序,網(wǎng)上那幾個(gè)調(diào)情的鏡頭其實(shí)沒什么看頭,想看真正復(fù)雜的人性不能...
    八音先生閱讀 740評(píng)論 0 49