Git分支相關(guān)內(nèi)容

首先來(lái)過(guò)一下git pullgit push的用法廊勃,了解過(guò)后滑进,最后還是推薦每次pull、push時(shí)都把內(nèi)容寫(xiě)全钞它,省去不必要的麻煩拜银。

git pull

1. 基本用法

  • git pull <遠(yuǎn)程主機(jī)名> <遠(yuǎn)程分支名>:<本地分支名>
  • git pull origin master:wt,就是將遠(yuǎn)程主機(jī)origin上的master分支拉取過(guò)來(lái)须揣,并與本地的wt分支合并盐股;
  • 如果后面的冒號(hào)省略的話(huà),即git pull origin master耻卡,表示將遠(yuǎn)程主機(jī)origin上的master分支拉取過(guò)來(lái)疯汁,并與本地的當(dāng)前所在分支合并;

git push

1.基本用法

  • git push <遠(yuǎn)程主機(jī)名> <本地分支名>:<遠(yuǎn)程分支名>
  • git push origin wt卵酪,如果遠(yuǎn)程分支被省略幌蚊,則表示將本地分支推送到與之存在映射關(guān)系的遠(yuǎn)程分支谤碳,如果不存在映射關(guān)系的遠(yuǎn)程分支,則會(huì)被新建一個(gè)與本地分支同名的遠(yuǎn)程分支溢豆;(所以當(dāng)你想要推送的遠(yuǎn)程分支feature與本地分支wt不同名且不存在映射關(guān)系蜒简,請(qǐng)一定寫(xiě)全!d鱿伞4瓴纭!6铀)
  • git push origin :feature卷仑,如果冒號(hào)前的本地分支省略,則表示刪除指定的遠(yuǎn)程分支麸折,因?yàn)檫@等同于推送一個(gè)空的本地分支到遠(yuǎn)程分支锡凝,等同于git push origin --delete feature所以這種形式慎用9柑洹4芫狻!芭析!
  • git push origin锚扎,如果當(dāng)前本地分支與遠(yuǎn)程分支存在映射關(guān)系,則本地分支與遠(yuǎn)程分支都可以省略放刨,即將當(dāng)前分支推送到origin主機(jī)的對(duì)應(yīng)分支工秩;(記住~~僅限于存在映射關(guān)系,你才可以省略=场V摇!C椤)
  • git push眉菱,當(dāng)前本地分支只有一個(gè)遠(yuǎn)程分支(也就是說(shuō)只有一個(gè)遠(yuǎn)程主機(jī)),那么它連主機(jī)名都可以省略掉分;

下面結(jié)合情形來(lái)記錄分支

  1. 你clone了一個(gè)新代碼俭缓,記住git clone的時(shí)候只會(huì)把遠(yuǎn)程上的master分支clone下來(lái),無(wú)法clone所有分支酥郭;
  2. 但遠(yuǎn)程上一共有master华坦、dev、test三個(gè)分支不从,一般你需要把寫(xiě)的代碼提到dev分支上惜姐,這時(shí)你git checkout dev,git會(huì)自動(dòng)地生成一個(gè)本地的分支指針,相當(dāng)于執(zhí)行git checkout -b dev origin/dev(貌似這里僅適用于本地分支與遠(yuǎn)程分支同名的情況下歹袁,意思為切換到遠(yuǎn)端的dev分支坷衍,并在本地新建dev分支,且切換到本地dev分支);
  3. 此時(shí)条舔,如果你不想本地與遠(yuǎn)程同名枫耳,那么你可以直接在本地新建分支git checkout -b wt,此時(shí)wt分支的代碼就與dev分支上的保持一致(你在哪個(gè)分支下新建分支孟抗,新建分支的代碼就與那個(gè)分支下的代碼保持一致)迁杨;
  4. 直接新建的本地的分支(git checkout -b XX這種只新建了本地分支)是不會(huì)自動(dòng)和遠(yuǎn)程同步的(即映射);查看是否當(dāng)前分支是否有映射分支夸浅,執(zhí)行git branch -vv仑最,括號(hào)中的藍(lán)色字體就是映射得遠(yuǎn)程分支,如果沒(méi)有帆喇,那就是沒(méi)有映射的遠(yuǎn)程分支;
  5. 如果本地分支沒(méi)有與遠(yuǎn)程分支映射亿胸,那么你在git pull或push的時(shí)候坯钦,要把所有內(nèi)容都寫(xiě)全,即git pull <遠(yuǎn)端主機(jī)名> <遠(yuǎn)端分支>:<本地分支>git pull origin feature:wt)和git push <遠(yuǎn)程主機(jī)名> <本地分支名>:<遠(yuǎn)程分支名>git push origin wt:feature)侈玄;
  6. 如果你想把本地分支與遠(yuǎn)程分支映射起來(lái)婉刀,先切換到要映射的本地分支上,執(zhí)行git branch --set-upstream-to <遠(yuǎn)程主機(jī)名>/<遠(yuǎn)程分支>git branch --set-upstream-to origin/dev)序仙,關(guān)聯(lián)之后呢突颊,可以運(yùn)行git branch -vv查看映射關(guān)系,成功后每次只需寫(xiě)git pull潘悼、git push即可律秃,就不需要加其他內(nèi)容了;
  7. 下面說(shuō)一下合并代碼的步驟(請(qǐng)一直保持本地分支與你要合并到的分支上版本一致
// 此時(shí)在本地分支wt上治唤,相關(guān)功能都寫(xiě)在此分支上棒动,寫(xiě)完提交到本地倉(cāng)庫(kù)
git add .
git commit -m "message"

// 把本地分支wt上的內(nèi)容合并到遠(yuǎn)程分支dev
git checkout dev
git pull  // 更新一下dev最新的代碼
git merge wt  //把wt分支上的內(nèi)容合并到當(dāng)前分支dev
git push 

//這時(shí)你又要切到wt分支上繼續(xù)寫(xiě)
git checkout wt  //這時(shí)你可以git merge dev一下,使本地wt分支與dev分支代碼一致宾添,也可以不merge船惨,wt本地分支只保留我自己的改動(dòng)
  1. 最后wt分支上的代碼合到遠(yuǎn)程dev上后,可以把本地分支wt刪掉缕陕,git branch -d wt(因?yàn)閣t這個(gè)分支只在本地啊粱锐,沒(méi)有推到遠(yuǎn)程倉(cāng)庫(kù),所以可以刪除扛邑,當(dāng)然在此分支上的改動(dòng)都提交后刪除怜浅,你也可以不提改動(dòng),直接強(qiáng)制刪除鹿榜,git branch -D wt

解決沖突

  1. 當(dāng)你準(zhǔn)備把你本地的分支合并出現(xiàn)沖突時(shí)海雪,你要分清什么是“當(dāng)前更改”和“傳入的更改”锦爵;
  2. “本地更改”(<<<<<<<)就是你git pull從遠(yuǎn)端拉下來(lái)的代碼;
  3. “傳入的更改”(>>>>>>>)就是你git commit要上傳的代碼奥裸;
    沖突.png

關(guān)于分支的git命令

  1. git branch 查看本地分支险掀;
  2. git branch -r 查看遠(yuǎn)端分支;
  3. git branch -a 查看所有的分支湾宙,包括本地和遠(yuǎn)端的樟氢;
  4. git branch -vv 查看本地分支的映射信息;
  5. git branch --unset-upstream 撤銷(xiāo)本地分支與遠(yuǎn)程分支的映射關(guān)系侠鳄;
  6. git checkout -b XX origin/dev 切換到遠(yuǎn)程分支dev埠啃,并新建本地分支XX且切換至XX分支上(這樣子新建的分支會(huì)與遠(yuǎn)程分支有映射關(guān)系)
    image.png
  7. git branch -d XX 刪除XX本地分支伟恶;
  8. 如果遠(yuǎn)端有dev這個(gè)分支碴开,在本地直接git checkout dev分支名字一樣),這時(shí)會(huì)自動(dòng)在本地創(chuàng)建dev這個(gè)分支且與遠(yuǎn)端dev相關(guān)聯(lián)(與第7條有點(diǎn)像啊博秫,只是名字是否相同的區(qū)別)潦牛;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市挡育,隨后出現(xiàn)的幾起案子巴碗,更是在濱河造成了極大的恐慌,老刑警劉巖即寒,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件橡淆,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡母赵,警方通過(guò)查閱死者的電腦和手機(jī)逸爵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)市咽,“玉大人痊银,你說(shuō)我怎么就攤上這事∈┮铮” “怎么了溯革?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)谷醉。 經(jīng)常有香客問(wèn)我致稀,道長(zhǎng),這世上最難降的妖魔是什么俱尼? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任抖单,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘矛绘。我一直安慰自己耍休,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布货矮。 她就那樣靜靜地躺著羊精,像睡著了一般。 火紅的嫁衣襯著肌膚如雪囚玫。 梳的紋絲不亂的頭發(fā)上喧锦,一...
    開(kāi)封第一講書(shū)人閱讀 51,370評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音抓督,去河邊找鬼燃少。 笑死,一個(gè)胖子當(dāng)著我的面吹牛铃在,可吹牛的內(nèi)容都是我干的阵具。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼定铜,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼怔昨!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起宿稀,我...
    開(kāi)封第一講書(shū)人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎赖捌,沒(méi)想到半個(gè)月后祝沸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡越庇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年罩锐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卤唉。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡涩惑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出桑驱,到底是詐尸還是另有隱情竭恬,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布熬的,位于F島的核電站痊硕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏押框。R本人自食惡果不足惜岔绸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧盒揉,春花似錦晋被、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至扁掸,卻和暖如春翘县,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背谴分。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工锈麸, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人牺蹄。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓忘伞,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親沙兰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子氓奈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

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