成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

[[232160]]

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

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

[[232161]]

tree branches

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

 

為何在 Git 倉(cāng)庫(kù)中使用分支

使用分支的主要理由為:

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

 

創(chuàng)建分支

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

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

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

終端輸出

Terminal output

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

接下來(lái),運(yùn)行如下命令:

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

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

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

如你所見(jiàn),git status 告知你當(dāng)前處于 myBranch 分支,沒(méi)有變更需要提交。這是因?yàn)槲覀兗葲](méi)有增加新文件,也沒(méi)有修改已有文件。

終端輸出

Terminal output

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

(LCTT 譯注:需要在有 X 服務(wù)器的終端運(yùn)行 gitk,否則會(huì)報(bào)錯(cuò))

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

Gitk 輸出

Gitk output

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

  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 分支的當(dāng)前狀態(tài)。在下面的終端輸出中,Git 告知 myBranch 分支下有一個(gè)名為 newFile 的文件當(dāng)前處于 untracked 狀態(tài)。這表明我們沒(méi)有讓 Git 追蹤發(fā)生在文件 newFile 上的變更。

終端輸出

Terminal output

下一步是增加文件,提交變更并將 newFile 文件推送至 myBranch 分支(請(qǐng)回顧本系列上一篇文章獲得更多細(xì)節(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 賬號(hào)下的 Demo 倉(cāng)庫(kù)中,告知你在 GitHub 上創(chuàng)建了一個(gè)與你本地副本分支 myBranch 一樣的新分支。終端輸出截圖給出了運(yùn)行命令的細(xì)節(jié)及命令輸出。

終端輸出

Terminal output

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

GitHub

GitHub

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

GitHub

GitHub

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

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

  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 代碼庫(kù) 中驗(yàn)證你的結(jié)果。

 

刪除分支

由于我們?cè)黾恿藘蓚€(gè)分支,下面刪除其中的一個(gè)(myBranch),包括兩步:

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

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

  2. 刪除 GitHub 上的分支 使用如下命令刪除 myBranch 的遠(yuǎn)程分支:

    1. git push origin :myBranch

    Terminal output

    Terminal output

上面 push 命令中分支名稱(chēng)前面的冒號(hào)(:)告知 GitHub 刪除分支。另一種寫(xiě)法為:

  1. git push -d origin myBranch

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

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

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

2022-10-26 09:22:19

git命令Linux

2020-07-09 08:00:25

Git分支模式

2021-03-28 17:21:15

Git分支策略

2022-05-25 16:51:41

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

2024-04-03 09:03:05

項(xiàng)目分支管理

2014-08-08 10:20:23

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

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開(kāi)發(fā)

2020-07-15 07:33:18

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

2020-05-28 10:45:31

Git分支合并

2025-06-09 01:00:00

2022-08-11 15:45:13

Git

2025-05-26 09:52:42

IDEAGit分支

2021-04-14 14:58:35

Git遴選軟件開(kāi)發(fā)

2013-10-09 10:04:20

LinuxGit

2024-04-18 09:12:58

Git分支代碼

2025-01-13 00:00:15

分支gitmaster
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 国产精品久久久久一区二区三区 | 国产精品久久久久久久久久久免费看 | 青青久在线视频 | 亚洲人在线观看视频 | 亚洲免费一 | 精品久久国产视频 | 中文字幕在线网 | 爱草在线 | 国产精品1区2区 | 亚洲福利视频网 | 国产色在线 | 久久综合国产 | 亚洲午夜精品 | 日韩一区二区在线视频 | 国产精品精品 | 午夜a√ | 中文字幕一区二区三区四区 | 午夜网址| 国产1区 | 久久国产日本 | 国产1区| 欧美成ee人免费视频 | 国内激情av片 | www成人免费| 波霸ol一区二区 | 国产婷婷色一区二区三区 | 日韩中文字幕 | 伊人久久精品 | 成人欧美一区二区三区在线播放 | 中文字幕二区 | 国产高清一区二区三区 | 一级欧美视频 | 欧美性成人 | 中文字幕在线播放第一页 | 久久精品国产清自在天天线 | 中文字幕av在线 | 欧美一二区 | 欧美激情视频一区二区三区在线播放 | 亚洲一区二区三 | 国产精品有限公司 | 国产亚洲日本精品 |