精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Git分支,為何以及如何使用分支

Linux愛好者 ? 來源:未知 ? 作者:李倩 ? 2018-06-11 11:08 ? 次閱讀

在本系列的前兩篇文章中,我們開始使用 Git,學會如何克隆項目,修改、增加和刪除內容。在這第三篇文章中,我將介紹 Git 分支,為何以及如何使用分支。

不妨用樹來描繪 Git 倉庫。圖中的樹有很多分支,或長或短,或從樹干延伸或從其它分支延伸。在這里,我們用樹干比作倉庫的 master 分支,其中master代指 ”master 分支”,是 Git 倉庫的中心分支或第一個分支。為簡單起見,我們假設master是樹干,其它分支都是從該分支分出的。

為何在 Git 倉庫中使用分支

使用分支的主要理由為:

如果你希望為項目增加新特性,但很可能會影響當前可正常工作的代碼。對于該項目的活躍用戶而言,這是很糟糕的事情。與其將特性加入到其它人正在使用的master分支,更好的方法是在倉庫的其它分支中變更代碼,下面會給出具體的工作方式。

更重要的是,Git 其設計用于協作。如果所有人都在你代碼倉庫的master分支上操作,會引發很多混亂。對編程語言或項目的知識和閱歷因人而異;有些人可能會編寫有錯誤或缺陷的代碼,也可能會編寫你覺得不適合該項目的代碼。使用分支可以讓你核驗他人的貢獻并選擇適合的加入到項目中。(這里假設你是代碼庫唯一的所有者,希望對增加到項目中的代碼有完全的控制。在真實的項目中,代碼庫有多個具有合并代碼權限的所有者)

創建分支

讓我們回顧本系列上一篇文章,看一下在我們的 Demo 目錄中分支是怎樣的。如果你沒有完成上述操作,請按照文章中的指示從 GitHub 克隆代碼并進入 Demo 目錄。運行如下命令:

pwd

git branch

ls -la

pwd命令(是當前工作目錄的英文縮寫)返回當前你所處的目錄(以便確認你在Demo目錄中),git branch列出該項目在你主機上的全部分支,ls -la列出當前目錄下的所有文件。你的終端輸出類似于:

在master分支中,只有一個文件README.md。(Git 會友好地忽略掉其它目錄和文件。)

接下來,運行如下命令:

git status

git checkout -bmyBranch

git status

第一條命令git status告知你當前位于branch master,(就像在終端中看到的那樣)它與origin/master處于同步狀態,這意味著 master 分支的本地副本中的全部文件也出現在 GitHub 中。兩份副本沒有差異,所有的提交也是一致的。

下一條命令git checkout -b myBranch中的-b告知 Git 創建一個名為myBranch的新分支,然后checkout命令將我們切換到新創建的分支。運行第三條命令git status確保你已經位于剛創建的分支下。

如你所見,git status告知你當前處于myBranch分支,沒有變更需要提交。這是因為我們既沒有增加新文件,也沒有修改已有文件。

如果希望以可視化的方式查看分支,可以運行gitk命令。如果遇到報錯bash: gitk: command not found...,請先安裝gitk軟件包(找到你操作系統對應的安裝文檔,以獲得安裝方式)。

(LCTT 譯注:需要在有 X 服務器的終端運行gitk,否則會報錯)

下圖展示了我們在 Demo 項目中的所作所為:你最后一次提交(的對應信息)是Delete file.txt,在此之前有三次提交。當前的提交用黃點標注,之前的提交用藍點標注,黃點和Delete file.txt之間的三個方塊展示每個分支所在的位置(或者說每個分支中的最后一次提交的位置)。由于myBranch剛創建,提交狀態與master分支及其對應的記為remotes/origin/master的遠程master分支保持一致。(非常感謝來自 Red Hat 的Peter Savage讓我知道gitk這個工具)

下面讓我們在myBranch分支下創建一個新文件并觀察終端輸出。運行如下命令:

echo"Creating a newFile on myBranch" > newFile

cat newFile

git status

第一條命令中的echo創建了名為newFile的文件,接著cat newFile打印出文件內容,最后git status告知你我們myBranch分支的當前狀態。在下面的終端輸出中,Git 告知myBranch分支下有一個名為newFile的文件當前處于untracked狀態。這表明我們沒有讓 Git 追蹤發生在文件newFile上的變更。

下一步是增加文件,提交變更并將newFile文件推送至myBranch分支(請回顧本系列上一篇文章獲得更多細節)。

git add newFile

git commit -m"Adding newFile to myBranch"

git push origin myBranch

在上述命令中,push命令使用的分支參數為myBranch而不是master。Git 添加newFile并將變更推送到你 GitHub 賬號下的 Demo 倉庫中,告知你在 GitHub 上創建了一個與你本地副本分支myBranch一樣的新分支。終端輸出截圖給出了運行命令的細節及命令輸出。

當你訪問 GitHub 時,在分支選擇的下拉列表中可以發現兩個可供選擇的分支。

點擊myBranch切換到myBranch分支,你可以看到在此分支上新增的文件。

截至目前,我們有兩個分支:一個是master分支,只有一個README.md文件;另一個是myBranch分支,有兩個文件。

你已經知道如何創建分支了,下面我們再創建一個分支。輸入如下命令:

git checkout master

git checkout -bmyBranch2

touch newFile2

git add newFile2

git commit -m"Adding newFile2 to myBranch2"

git push origin myBranch2

我不再給出終端輸出,需要你自己嘗試,但你可以在GitHub 代碼庫中驗證你的結果。

刪除分支

由于我們增加了兩個分支,下面刪除其中的一個(myBranch),包括兩步:

刪除本地分支你不能刪除正在操作的分支,故切換到master分支 (或其它你希望保留的分支),命令及終端輸出如下:

git branch可以列出可用的分支,使用checkout切換到master分支,然后使用git branch -D myBranch刪除該分支。再次運行git branch檢查是否只剩下兩個分支(而不是三個)。

刪除 GitHub 上的分支使用如下命令刪除myBranch的遠程分支:

git push origin :myBranch

上面push命令中分支名稱前面的冒號(:)告知 GitHub 刪除分支。另一種寫法為:

git push -dorigin myBranch

其中 -d (也可以用 --delete) 也用于告知 GitHub 刪除你的分支。

我們學習了 Git 分支的使用,在本系列的下一篇文章中,我們將介紹如何執行 fetch 和 rebase 操作,對于多人同時的貢獻的項目而言,這是很必須學會的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • MASTER
    +關注

    關注

    0

    文章

    103

    瀏覽量

    11266
  • Git
    Git
    +關注

    關注

    0

    文章

    196

    瀏覽量

    15739
  • GitHub
    +關注

    關注

    3

    文章

    467

    瀏覽量

    16389

原文標題:Git 分支操作介紹

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    關于git的遠程分支的詳細介紹

    不知道大家有沒有經歷過,當我們切換到了一個新的分支想要提交代碼的時候,總會遇到這樣的錯誤。 我們把日志里的英文翻譯過來是說,我們當前的分支沒有設置任何上游分支。然后git提示我們可以運
    的頭像 發表于 10-11 10:03 ?3198次閱讀
    關于<b class='flag-5'>git</b>的遠程<b class='flag-5'>分支</b>的詳細介紹

    CPU分支預測對程序的影響

    分支預測的英文名字是“Branch Prediction”,如果大家在Google上搜索這個關鍵字,可以看到關于分支預測的很多內容。不過,要搞清楚分支預測是如何工作的,才是問題的關鍵。
    發表于 09-23 14:11 ?1098次閱讀

    Git命令之本地分支與遠程分支關聯和解除

    在實際的工作生活中,往往需要將本地的分支和遠程分支關聯,這樣我們就可以使用git pull命令來更新拉取最新的代碼,并使用git push命令將自己本地的修改推送到遠程倉庫。但是如果此
    的頭像 發表于 12-15 09:27 ?3096次閱讀
    <b class='flag-5'>Git</b>命令之本地<b class='flag-5'>分支</b>與遠程<b class='flag-5'>分支</b>關聯和解除

    labview事件結構的添加分支控件為什么分支是灰色的

    labview事件結構的添加分支控件為什么分支是灰色的,沒辦法自定義輸入
    發表于 11-07 20:13

    git簡單使用(一)

    倉庫,以及如何進行分支控制:1.創建一個文件夾mkdir git-study2.初始化倉庫git init3.查看下當前分支
    發表于 02-17 16:18

    git merge后,原分支的內容沒有出現在新的master分支中。

    我新建了一個rico分支,現在想把rico分支的內容合并到master分支,但是合并之后,我在rico分鐘中新建的文件夾,并沒有出現在master中,這是為什么呢??rico分支中有
    發表于 03-12 00:48

    有線電視分支

    有線電視分支器實際是一種定向信號傳輸器件(內裝定向藕合器)。一分支、二分支、四分支、八分支等多種類型,
    發表于 07-08 11:41 ?6636次閱讀

    Git Flow應該拋棄的原因

    Git-flow 是一種分支和合并方法。十年前,因為一篇名為「一個成功的 Git 分支模型」的文章,Git-flow 變得廣為人知。
    的頭像 發表于 03-21 13:41 ?1484次閱讀
    <b class='flag-5'>Git</b> Flow應該拋棄的原因

    電纜分支箱安裝_電纜分支箱的應用

    你真的對電纜分支箱安裝都非常的了解了么?在安裝之前要準備什么、安裝要注意什么、安裝好之后又該如何驗收等等,筆者特別提醒大家電纜分支箱安裝好了才可以確保后期的穩定使用,下面就由生產廠家紅蘇電器為大家詳細介紹電纜分支箱安裝知識。
    發表于 12-24 16:43 ?3818次閱讀

    Git / GitHub 是什么?有什么用?

    分支Git 里很重要的概念,大家可以使用 Learning Git Branching 這個在線游戲來學習和理解分支
    發表于 12-09 09:39 ?909次閱讀

    Git分支管理

    在項目的開發過程中,很多時候都會使用Git托管工具進行項目文件或者代碼的管理,方便團隊成員之間的協作開發。使用Git進行項目管理目前也是越來越受到歡迎,除了Git還有很多的其他項目管理,其目的都是為了能夠方便項目管理、團隊協作開
    的頭像 發表于 02-20 14:49 ?1006次閱讀
    <b class='flag-5'>Git</b>的<b class='flag-5'>分支</b>管理

    git拉取遠程分支到本地的兩種方法

    使用這種方式會在本地倉庫新建分支xxx,并自動切換到新建的分支xxx,當然了遠程分支xxx的代碼也拉取到了本地分支xxx中。采用這種方法建立的本地
    的頭像 發表于 05-06 09:19 ?1.5w次閱讀

    git rebase與相關git merge命令比較

    。 #概念 ????首先要理解的是git rebase和git merge解決了同樣的問題。這兩個命令都旨在將更改從一個分支集成到另一個分支 - 它們只是以不同的方式進行。試想一下當你
    的頭像 發表于 05-26 16:22 ?857次閱讀
    <b class='flag-5'>git</b> rebase與相關<b class='flag-5'>git</b> merge命令比較

    git rebase和git merge的區別

    ? 解決沖突 git rebase和git merge的區別 分支合并 git merge是用來合并兩個分支的。 比如:將 b
    的頭像 發表于 07-05 09:54 ?623次閱讀
    <b class='flag-5'>git</b> rebase和<b class='flag-5'>git</b> merge的區別

    何以及為何要在EtherCAT?應用中使用DP83826

    電子發燒友網站提供《如何以及為何要在EtherCAT?應用中使用DP83826.pdf》資料免費下載
    發表于 08-27 10:19 ?0次下載
    如<b class='flag-5'>何以及</b><b class='flag-5'>為何</b>要在EtherCAT?應用中使用DP83826