首页
/
每日頭條
/
圖文
/
git操作指令
git操作指令
更新时间:2025-01-02 09:30:43

git操作指令(git命令手冊分支操作)1

git命令手冊往期内容回顧:

git命令手冊:倉庫操作

git命令手冊:遠程倉庫操作

分支簡介

分支一方面類似科幻電影裡面經常出現的平行宇宙,每個分支的代碼版本都是獨立演進的,分支之間的代碼版本完全不會幹擾另外一個代碼版本的開發。但是,與平行宇宙不同的一點是,分支之間還能合并。

Git 的分支相比 SVN 要輕量很多,這是因為 Git 分支并不是複制一個新倉庫,而是為一個分支存儲一個指針,這個指針将指向某個提交對象。沒錯,這就和數據結構中常見的指針鍊表一樣。所以 Git 的分支隻是指針,并沒有将倉庫進行複制,每次提交都會讓當前的分支向後移動,指向最後一次提交的對象。當你在切換分支時,Git 也隻是改變指向當前所在分支的特殊指針 HEAD,所以可以快速地在各個分支之間進行切換。


本文将對分支操作進行歸納說明,具體如下:

1.分支的創建

分支的創建, 其實本質就是創建一個可以移動的指針,這個指針名就是新的分支名

$ git branch dev

merge合并效果

git操作指令(git命令手冊分支操作)2

rebase合并效果

圖片1是merge合并效果, 圖片2是rebase合并效果. 明顯變基會讓提交曆史看起來更加幹淨. 使用如下:

# rebase <目标分支名> [需要移動變基底的分支]

$ git rebase master experiment

# 此時目标分支後面會追加另一個分支的提交. 此時隻需要切換到master分支,合并分支即可.

$ git checkout master

$ git merge experiment

rebase原理就是, 從目标分支和要變基的分支向上查找出共同祖先節點就是c2, 然後把要變基的分支到c2節點的所有提交,提取出相應的修改生成一個副本, 并追加到目标分創建相對應的提交. 此時變基的分支指向目标分支master的後面某一次提交. 此時隻要使用修改master指向指針使用merge即可.

7.遠程分支

# 獲得遠程的倉庫列表

$ git ls-remote origin

# 如果想獲得更多的信息

$ git remote show origin

# 查看遠程分支和本地分支

$ git branch -a


7.1)拉取遠程分支

假設遠程如果有一個dev分支, 你使用fetch進行抓取. 這個時候, 本地不會自動生成一個可編輯的副本, 換句話說就是這種情況下, 不會有一個新的dev本地分支, 隻有一個不可以修改的origin/dev指針. 這個時候可以運行git merge origin/dev命令, 将這些遠程dev分支的工作合并到當前分支. 如果想要在自己本地的dev分支上工作, 可以将其建立在遠程分支之上.

$ git checkout -b dev origin/dev


7.2)創建遠程分支

如果你的本地有一個新建的dev分支, 并且你進行了提交, 此時你想把這個分支也提交到遠程的dev分支, 但是遠程還沒有創建dev, 這個時候可以使用如下命令:git push <遠程倉庫名> <要推送的本地分支>

$ git push origin dev


7.3)删除遠程分支

# 删除遠程dev分支

$ git push origin --delete dev

8.跟蹤分支

從一個遠程跟蹤分支檢出一個本地分支會自動創建一個叫做跟蹤分支(有時候也叫做 “上遊分支”)。 跟蹤分支是與遠程分支有直接關系的本地分支。 如果在一個跟蹤分支上輸入git pull,Git能自動地識别去哪個服務器上抓取、合并到哪個分支。

當克隆一個倉庫時,它通常會自動地創建一個跟蹤origin/master的master分支。 然而,如果你願意的話可以設置其他的跟蹤分支 - 其他遠程倉庫上的跟蹤分支,或者不跟蹤master分支。 最簡單的就是之前看到的例子,運行git checkout -b [branch] [remotename]/[branch]。 這是一個十分常用的操作所以 Git 提供了--track快捷方式:

$ git checkout --track origin/dev

# 如果想要自定義本地分支名字

$ git checkout -b 任意分支名字 origin/dev


8.1)設置已有的本地分支跟蹤一個剛剛拉取下來的遠程分支,或者想要修改正在跟蹤的上遊分支,你可以在任意時間使用 -u 或 --set-upstream-to 選項運行 git branch 來顯式地設置。

# 設置HEAD指向的分支的上遊為遠程dev分支

$ git branch -u origin/dev


8.2)查看設置的所有跟蹤分支

$ git branch -vv


微信公衆号

更多精品技術幹貨,微信搜索關注【開發者小黑屋

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
楊紫戰長沙把霍建華演哭了(楊紫和霍建華含蓄的愛)
楊紫戰長沙把霍建華演哭了(楊紫和霍建華含蓄的愛)
  電視劇表達愛情用得最濫的情節之一肯定有擁吻,就連古裝劇也沒有例外,甚至更比都市劇有過之而無不及——套路非常恒定:第一次見面,不管大路多麼寬廣,兩個人總能碰在一起,然後總能抱住,一旦抱在一塊,嘴唇的位置總能恰到好處地兩兩對印,而且無論雙方高度有多大懸殊都不是事。   要是碰不上,也有辦法,那就來一波強吻,現在上線的《雙世寵妃2》全程都在賣這個景色,跟《1》...
2025-01-02
暴雨期間河堤撈魚(撈了鯉魚和草魚30多條)
暴雨期間河堤撈魚(撈了鯉魚和草魚30多條)
  連日來,不少地方連降大雨,河道漲水,田間地頭來了不少大魚,附近村民随手撈魚,特别開心。   鯉魚、草魚、鲢魚、鳙魚……在廣東清遠,田間地頭出現了魚群。有網友在朋友圈發了不少照片,展示捕撈的魚類。      這些魚類,大部分是從魚塘裡跑出來的,有鯉魚、鲫魚、黑魚及四大家魚等,當地養殖戶損失巨大。   在農村,養殖業的風險比較大,因為水火無情。特别到了梅雨季...
2025-01-02
趙露思生圖被網友吐槽(看趙露思騎真馬哇哇大哭)
趙露思生圖被網友吐槽(看趙露思騎真馬哇哇大哭)
  《星漢燦爛》開播,有多少人被一幫老戲骨的演技驚豔就有多少人對趙露思傻白甜式演技感覺到失望。   在一群微表情都意味深長的老戲骨之中,趙露思隻會傻乎乎張大嘴巴說着台詞的樣子可真的被秒成了渣渣~      這次趙露思《星漢燦爛》的現場花絮還被導演組放出來,隻見趙露思和吳磊同騎一匹馬,即使有個男子在身後護着趙露思依舊覺得心驚膽戰,吓得在馬上哇哇大哭起來,或許導...
2025-01-02
田蕾是獨立的女人嗎(看了誰說我結不了婚)
田蕾是獨立的女人嗎(看了誰說我結不了婚)
     這是一部由潘粵明、童謠、陳數、袁文康、許芳銥、李燊主演的都市言情戲。三個大齡女生充滿了正能量,童謠演的程璐是一個35歲金牌編劇,陳數演的田蕾是一家律師事務所的一姐,許芳銥演的是美容院老闆丁詩雅,她們都熱愛生活,健康善良,對工作有目标、肯拼搏,對于愛情,她們敢于堅持,都是讨人喜歡的女孩。但今天小編想聊的是陳數演的田蕾,陳數是一個絕對的實力派演員,年過...
2025-01-02
高分爆笑喜劇(年度爆笑喜劇回歸)
高分爆笑喜劇(年度爆笑喜劇回歸)
  來源于:黃河票務APP   三個小時笑死的年度喜劇,劇情高潮叠起、笑點密集如掃雷,屯好的成噸包袱,全場無尿點,節奏完全流暢,浪到飛起,讓你整個笑完全程,絕對值回票價!      喜劇片《糊塗戲班》最早是由英國著名小說家、戲劇家邁克爾·弗萊恩所創作的,于1982年在倫敦首演,它一問世就引起了觀衆的熱烈反應。   該劇後來多次被改編為電視劇和複排,成為倫敦西...
2025-01-02
Copyright 2023-2025 - www.tftnews.com All Rights Reserved