自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Git分支操作介紹:為何以及如何使用分支?

系統(tǒng) Linux 開源
在本系列的前兩篇文章中,我們開始使用 Git,學(xué)會如何克隆項目,修改、增加和刪除內(nèi)容。在這第三篇文章中,我將介紹 Git 分支,為何以及如何使用分支。

[[232160]]

在這個 Git 入門系列的第三篇中,我們來學(xué)習(xí)一下如何添加和刪除 Git 分支。

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

[[232161]]

tree branches

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

 

為何在 Git 倉庫中使用分支

使用分支的主要理由為:

  • 如果你希望為項目增加新特性,但很可能會影響當前可正常工作的代碼。對于該項目的活躍用戶而言,這是很糟糕的事情。與其將特性加入到其它人正在使用的 master 分支,更好的方法是在倉庫的其它分支中變更代碼,下面會給出具體的工作方式。
  • 更重要的是,Git 其設(shè)計用于協(xié)作。如果所有人都在你代碼倉庫的 master 分支上操作,會引發(fā)很多混亂。對編程語言或項目的知識和閱歷因人而異;有些人可能會編寫有錯誤或缺陷的代碼,也可能會編寫你覺得不適合該項目的代碼。使用分支可以讓你核驗他人的貢獻并選擇適合的加入到項目中。(這里假設(shè)你是代碼庫唯一的所有者,希望對增加到項目中的代碼有完全的控制。在真實的項目中,代碼庫有多個具有合并代碼權(quán)限的所有者)

 

創(chuàng)建分支

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

  1. pwd
  2. git branch
  3. ls -la

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

終端輸出

Terminal output

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

接下來,運行如下命令:

  1. git status
  2. git checkout -b myBranch
  3. git status

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

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

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

終端輸出

Terminal output

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

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

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

Gitk 輸出

Gitk output

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

  1. echo "Creating a newFile on myBranch" > newFile
  2. cat newFile
  3. git status

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

終端輸出

Terminal output

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

  1. git add newFile
  2. git commit -m "Adding newFile to myBranch"
  3. git push origin myBranch

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

終端輸出

Terminal output

當你訪問 GitHub 時,在分支選擇的下拉列表中可以發(fā)現(xiàn)兩個可供選擇的分支。

GitHub

GitHub

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

GitHub

GitHub

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

你已經(jīng)知道如何創(chuàng)建分支了,下面我們再創(chuàng)建一個分支。輸入如下命令:

  1. git checkout master
  2. git checkout -b myBranch2
  3. touch newFile2
  4. git add newFile2
  5. git commit -m "Adding newFile2 to myBranch2"
  6. git push origin myBranch2

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

 

刪除分支

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

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

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

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

    1. git push origin :myBranch

    Terminal output

    Terminal output

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

  1. git push -d origin myBranch

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

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

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2022-10-26 09:22:19

git命令Linux

2020-07-09 08:00:25

Git分支模式

2022-05-25 16:51:41

Git 分支重命名開發(fā)者

2021-03-28 17:21:15

Git分支策略

2014-08-08 10:20:23

Git版本管理系統(tǒng)

2024-04-03 09:03:05

項目分支管理

2023-10-09 08:39:33

Git Flow分支管理模型

2022-11-07 08:01:18

Git分支管理

2023-12-01 11:05:29

Git 分支

2020-09-06 09:55:13

git分支命令

2022-02-14 06:35:26

git參數(shù)Jenkins開發(fā)

2020-05-28 10:45:31

Git分支合并

2022-08-11 15:45:13

Git

2020-07-15 07:33:18

物聯(lián)網(wǎng)大數(shù)據(jù)IOT

2013-10-09 10:04:20

LinuxGit

2021-04-14 14:58:35

Git遴選軟件開發(fā)

2024-04-18 09:12:58

Git分支代碼

2025-01-13 00:00:15

分支gitmaster

2011-03-30 10:50:55

GitLinux 版本控制

2022-03-18 09:45:43

Git分支Linux
點贊
收藏

51CTO技術(shù)棧公眾號