[GitHub]第三講:簡單分支操作

Git 最核心的操作對象是版本( commit ),最核心的操作技巧就是分支。

什么是分支?

倉庫創建后,一旦有了新 commit,默認就會放到一個分支上,名字叫 master。前面咱們一直看到的多個版本組成的一條歷史線,就是 master 分支。但是一個倉庫內,用戶可以自己創建其他的分支,可以有多條歷史線。

說說 master 這個名字,一般中文叫“主分支”,其實從技術底層來講它跟其他我們自己要創建的分支沒有區別,只不過它是天生的默認分支。實際工程項目中會人為的給它一個重要的使命,存放穩定代碼。就像 github 公司倡導的。

master 分支上的所有代碼都應該是可以部署的

意思就是 master 分支上的代碼是隨時可以放到產品服務器上跑的代碼。這樣,如果想開發一個新功能,可以新開分支。 想象一下歷史線上有很多節,每個版本就是一節。一個分支相當于一跟竹子,一節節的往上長。

但是實際上在底層并不是每個分支都拷貝出自己獨立的一條歷史線。其實 master 本身只是一個指針,指向 master 分支上最新的一個版本。這樣由于每個 commit 都可以順藤摸瓜找到自己的前一個 commit,那么這條歷史線就可以確定了。

創建新分支

什么時候需要開一個新分支,這個后面講各種工作流程的時候會介紹,今天先把基本操作學會。 到客戶端的Branches?這一項

點擊1處的加號,就會彈出2處的對話框。Create a new branch off master?就是來創建一個分支。在對話框中填入?idea,創建了 idea 分支的。所謂?off master?意思是“基于 master ”分支,所以此刻 idea 分支并不為空,而是擁有和 master 一樣的歷史。如下圖,箭頭所指的小對勾表示“當前分支”( current branch )已經自動切換到 idea 分支。

但是,在底層這個的實現是非常巧妙的,就是又創建一個新的 idea 指針,跟 master 指針指向同一個版本,根本沒有拷貝歷史線。

如果現在我對項目做一下修改,然后 commit 了。那么移動的只是 idea 指針,master 不變。就成了這樣:

現在 master 分支包含兩個版本 C1 和 C2,idea 分支包含三個版本 C1,C2,C3 。

默認情況下這個 idea 分支只是存在于本地,如果想在遠端倉庫上發布這個分支,就點一下 idea 分支右側的Publish?按鈕。

這樣,到遠端倉庫看一下,點擊下圖1處,發現果然2處多了一個 idea 分支,3處的輸入框中,不但能搜索已有分支,還能創建新分支,看到了吧,很多操作在本地客戶端和 github.com 上都能進行。

切換分支

到 branches 標簽下,相中哪個分支了,雙擊一下就切換過去了。時間長了你會覺得這個也不夠快,還是純鍵盤操作快。敲 Cmd-B 可以打開分支切換框,輸入名字回車,就切換成功了。

如果你在 idea 分支上有了修改但是還沒有來得及 commit,這時候如果切換分支,那么 git 會替你保存這部分修改,也就是在切換到的分支上是看不到這部分修改的。但是不要擔心,只要你切換回老分支,修改內容又回來了。

注意,每次切換分支,項目代碼,術語叫工作樹( Working Tree )是會隨著變化的,在編輯器中看看就知道了。

刪除分支

首先當前分支是不能刪除的。什么意思?到客戶端的?Branches?標簽下,左側有對勾的就是當前分支,打開右側小箭頭的下拉菜單,可以看到?delete?這一項是禁用的。想刪除它,就先要切換到其他分支,例如?master。這樣就可以刪除 idea 分支了,如果執行本地刪除 github.com 上對應分支也會同時被刪除。

在客戶端把分支切換到 idea,現在試圖去刪除 master 。點開 master 分支的小箭頭,發現?delete?一項可以點,所以點一下,但是報錯了:“”master” is the repository’s default branch and cannot be deleted.` 要到 github.com 上修改默認分支( default branch 注意跟當前分支是不同的),就像這樣。

在遠端倉庫,也就是 github.com 上如何切換默認分支呢?到?settings?下面就更改?Default branch?就可以了。

如果只想刪除遠端分支,保留本地分支,可以在客戶端中使用每個分支右側的?Unpublish?這個選項。

總結

只開測試分支,調好代碼 commit 了之后,如果不把代碼搞到 master 分支上是沒有太大意義的,這就涉及到分支合并的問題了,這個是 git 最大最強的一塊功能,后面介紹。

轉載于:https://www.cnblogs.com/wanghang/p/6299698.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/271660.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271660.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271660.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

算法基礎:常用的排序算法知識筆記

1、算法外排序分類2、冒泡排序冒泡排序(Bubble Sort)屬于交換排序,它的原理是:循環兩兩比較相鄰的記錄,如果反序則交換,直到沒有反序的記錄為止。實現算法:/*** 冒泡排序優化后的算法* 設置一個…

302狀態碼_http狀態碼是什么?301 302 404的SEO應用場景

什么是HTTP狀態碼?簡單的講,就是用以表示網頁服務器HTTP響應狀態的3位數字代碼。其中1xx表示臨時響應,2xx表示成功處理了請求,3xx代表重定向,4xx表示請求錯誤,而5xx表示服務器錯誤。除了網頁正常返回200之外…

Android高版本開機廣播,android3.1以上,假如程序沒有啟動過,怎么獲取開機廣播呢?...

官方說不支持:Launch controlson stopped applicationsStarting from Android 3.1, the systems package manager keepstrack of applications that are in a stopped state and provides ameans of controlling their launch from background processes andother a…

git push前請先git pull

開發過程中 如果要推送代碼到遠程倉庫,請先git pull。養成好習慣。 原因很簡單,在你開發過程中,你的同事可能也在改代碼然后他提交了沒通知你,你直接git push很容易造成代碼沖突,代碼沖突解決也簡單,可萬一…

table 中 thead tbody tfoot 加載順序問題

這幾個標記主要是用于提高table標簽的加載以及顯示的,說白了,就是分布加載。在傳統的瀏覽器,在加載 時,是當所有的標簽中元素都被下載后才會顯示,當然這樣的用戶體驗是不好的。再加入了這幾個t打頭的標簽后&#xff0c…

算法基礎:常用的查找算法知識筆記

1、查找表和查找效率的概念查找表是指由同一類型的數據元素構成的集合。分為靜態查找表和動態查找表。1.1 靜態查找表1、查詢某個特定元素是否在查找表的集合當中2、查詢某個特定元素的各種屬性1.2 動態查找表1、在查找表中插入一個數據元素2、在查找表中刪除一個元素1.3 關鍵字…

注解參數怎么使用變量_硅橡膠膠水有哪些特點?使用參數表現的怎么樣?如何儲存?...

作為單組分產品,硅橡膠膠水的使用方法簡單又靈活。直接涂抹在粘接基面上,固化之后即可抵抗外界的壓力與沖擊。別看它的規格不是很打,卻可以順順利利完成粘接,形成保護膜。硅橡膠膠水有哪些特點?沒有固化之前,是半透明…

android 谷歌郵箱,Android 使用 SMTP 發送郵件 (Gmail)

具體使用方法請看:http://www.oschina.net/code/snippet_12_9831.[代碼]GMailSender.javapackage org.apache.android.mail;import javax.activation.DataHandler;import javax.activation.DataSource;import javax.mail.Message;import javax.mail.PasswordAuthent…

Java中return的兩種用法

一、return語句總是用在方法中,有兩個作用。 一個是返回方法指定類型的值(這個值總是確定的)。 一個是結束方法的執行(僅僅一個return語句)。 一般的就百是用在有反回值的方法中,用來返回方度法指定問類…

Alpha版總結會議

一、會議過程 我們于第十五周周一開始在學院樓針對前一段時間開發過程中的問題進行了討論。會議期間我們整合并回顧了一下兩次沖刺周期的成果。會議開始首先每個人都先發表了自己針對Alpha版開發過程中存在的疑惑和一些問題的看法。我們最后挑選出出三個最具針對性的問題進行了…

算法基礎:遞歸算法知識筆記

1、遞歸算法定義遞歸算法是將重復問題分解為同類的子問題而解決問題的方法,其核心思想是分治策略。簡單來說就是自己調用自己。直到達到退出遞歸的條件,則完成遞歸。2、遞歸的步驟1、找整個遞歸的終止條件:遞歸應該在什么時候結束&#xff1f…

ttl繼承邏輯門的邏輯功能與參數測試 實驗總結_LMS電聲測試儀,LMS-V測試系統,精聲電聲...

LMS-V測試系統LMS揚聲器測試儀從推出到現在25年的時間,在全世界被很多揚聲器開發與制造廠家廣泛應用研發與生產質量控制,傳統的LMS揚聲器測試儀采用ISA卡的形式提供,所以面臨著越來越多的零件過時,所以為了徹底解決這些問題&#…

android自動讓輸入框上劃,Android界面技巧:當輸入法調出時,如何讓界面自動上移,使輸入法不會遮擋到主界面(Activity)...

android:windowSoftInputModeactivity主窗口與軟鍵盤的交互模式,可以用來避免輸入法面板遮擋問題,Android1.5后的一個新特性。這個屬性能影響兩件事情:【一】當有焦點產生時,軟鍵盤是隱藏還是顯示【二】是否減少活動主窗口大小以便…

java中break標記的使用

筆試題目&#xff1a;break目前位于內層的for循環&#xff0c;如何才能讓break作用于外層 的for循環。可以標記解決 標記的命名只要符合標識符的命名規則即可。 Test public void test2(){aaa:for(int j 0 ; j<3 ; j){ // j0 外層for循環for(int i 0 ; i< 2 ; i){ //…

六月計劃#2B(6.10-6.16)

4/7 STL set 數學 快速傅立葉(FFT)高斯消元動態規劃 斜率優化轉載于:https://www.cnblogs.com/Sunnie69/p/5573299.html

電腦基礎知識入門:鍵盤上的英文,意思和功能匯總!

電腦鍵盤是把文字信息的控制信息輸入電腦的通道&#xff0c;從英文打字機的鍵盤演變而來的。它最早出現在電腦上的時候&#xff0c;還是一種叫做“電傳打字機”的部件。那些陌生的鍵盤按鍵都有什么用途?很多孩子不知道鍵盤上功能鍵和字母數字鍵以外的鍵盤按鍵有什么用&#xf…

elementui el-dialog 離頂部的位置_駐馬店建筑物避雷帶的安裝位置,本月報價

首頁 > 新聞中心發布時間&#xff1a;2020-11-06 18:23:42 導讀&#xff1a;科杰防雷為您提供駐馬店建筑物避雷帶的安裝位置的相關知識與詳情&#xff1a; 該系統在正常運行時&#xff0c;不管三相負荷平衡不平衡&#xff0c;在中性線N帶電情況下&#xff0c;PE線不會帶電。…

android 彈出框帶標題欄,Android開發靠標題欄的彈框

一、效果圖title_dialog.png二、思路首先它是一個彈框&#xff0c;只是彈框的布局做些處理&#xff0c;布局占滿屏幕&#xff0c;只有需要白色的布局的背景設為白色。其他沒設置背景顏色&#xff0c;自然用dialog的style的windowBackground三、案例關鍵代碼dialog的xmlxmlns:ap…

算法基礎:圖的相關算法知識筆記

一、圖的相關算法1、圖的分類知識如下圖&#xff1a;2、生成樹概念對連通圖進行遍歷&#xff0c;過程中所經過的邊和頂點的組合可看做是一棵普通樹&#xff0c;通常稱為生成樹。連通圖的生成樹具有這樣的特征&#xff1a;邊的數量 頂點數 - 13、最小生成樹在連通網的所有生成樹…

下午回來才后知百密于一疏忽

交了1700定金后就去了中介公司看了一下&#xff0c;比較偏僻窄小&#xff0c;然后里面有一些人和辦公桌比較擠&#xff0c;中介“董楠楠”介紹了一下女經理&#xff0c;然后就做地鐵回了&#xff0c;中途記憶&#xff0c;沒有冰箱然后統一口徑&#xff0c;對于只有一個電磁爐的…