說道git肯定就會用到GitHub。GitHub作為免費的遠端倉庫,如果是個人的開源項目,放到GitHub上是完全沒有問題的。
GitHub屬于分布式開發,多人協同操作,并且可以互不影響。
那今天我就就來用git指令實作分支的操作,并且看看互相之間的分支是怎樣不互相影響的
今天我們就來舉一個例子,就是現在公司裡的程式員們一起搞了一個注冊登入頁面,然而呢,boss為了搶占市場,第一個讓客戶們看到他的内容,就直接釋出了,這樣主分支上就有了注冊登入内容
然後boss就讓程式猿們繼續更新内容
技術老大給我說:豌豆你寫家電的内容吧
豌豆說:好的,老大,豌豆建立了一個家電的分支
然後日夜更替,風雲變幻,豌豆就在電腦前,啪啪的敲代碼,終于完成一半了,這個時候boss突然來了
boss說:豌豆,注冊和登入頁面有了bug,你趕緊先寫一下這個。
哇哦,蒼天,誰來拯救豌豆呀
豌豆默默的說:好的,馬上寫,然後豌豆就默默的建立了一個bug分支
然後日夜更替,風雲變幻,豌豆又繼續在電腦前,啪啪的敲代碼,終于完成了bug的檔案編寫
然而這一切并沒有結束,豌豆喝了一口咖啡,看了一眼天空想起來,默默的繼續寫起了家電的内容
未完待續……..
好啦故事講完了,大家以為我在講故事嗎?
nono
絕對不可能,隻是想給大家看下面的代碼做一個鋪墊,這樣了解git的分支會更好了解一些
ok,還有一張圖,幫助大家了解一下分支和主分支
1:我們做的這是一個購物網站,就簡稱為shopping吧,
那我們現在在目前檔案夾下建立一個shopping檔案夾吧
指令:mkdir shopping
那我們本地就有一個shopping的檔案夾了
2:我們現在就在shopping檔案夾下來寫我們這個項目的内容了,既然我們想要在shopping檔案夾内寫檔案,那我們先進入shopping檔案夾裡面
指令:cd shopping
從圖中就可以看出來原來我們在11.1檔案夾下,現在我們就進入到11.1檔案夾下的shopping中了
3:初始化,為shopping建立一個.git隐藏的小庫
指令:git init
4:前期的準備工作終于做好了,現在就要開始我們這個項目了,剛才在故事中說道準備上線的時候,我們寫了登入和注冊頁面,為了簡化名稱,我們就叫給這個檔案起名為:login.txt。當然真正的項目中肯定不會用txt的檔案來寫登入的,不過其他的檔案也是同樣的操作,這邊用txt檔案操作起來更友善,後面所有建立的檔案也都用txt檔案進行操作
指令:touch login.txt
在shopping中就有了login.txt檔案
5:在login.txt檔案中寫上登入和注冊的内容,然後送出到本地主倉庫
指令:vi login.txt
進入編輯頁面,英文狀态下按下a,然後進行編輯
指令:git add login.txt送出到暫存區
指令:git commit -m 登入和注冊頁面完成。把檔案送出到本地主倉庫
6:現在技術老大讓我開始做家電的内容了,我就建立一個家電的分支,然後在家電分支中建立一個jiadian.txt,在jiadian.txt中寫上家電的内容,并且上傳到本地主倉庫
指令:git branch jiadian (建立了一個家電分支)
指令:git checkout jiadian (進入家電分支下)
**指令:touch jiadian.txt
指令:git add jiadian.txt
指令:git commit -m 家電的内容**
這幾條運作成功後代表,在家電分支下建立的家電内容已經送出到主倉庫啦
注:在建立分支時,主分支上的内容,家電分支會原本的繼承下來
現在還在家電分支下,接下來我們來看看檔案夾裡的内容
一個是繼承了主分支的login.txt還有自己建立的jiadian.txt
7:在家電寫到一半的是,boss來了,交給我登入注冊的bug問題,那怎麼辦?
我現在就不能在家電分支下面繼續寫内容了,我需要切換回主分支,然後建立一個bug分支,在bug分支下面寫一個bug.txt檔案,然後上傳到伺服器
Git的優勢就展現出來了,雖然我寫了家電分支上的内容,但是我并沒有把分支合并過來,是以主分支上的内容還是login.txt那個檔案。
我在建立bug分支的時候,我會繼承master主分支上的内容,也就是注冊和登入頁面的内容,但是不會繼承家電的内容,兩個分支之間不會互相影響
ok,說這麼多,還是繼續操作指令吧
指令:git checkout master (切回到master主分支上)
**指令:git branch bug (建立bug分支)
指令:git checkout bug (切換到bug分支)**
**指令:touch bug.txt
指令:git add bug.txt
指令:git commit -m bug檔案的内容**
把bug.txt檔案送出到伺服器後,我們在檔案夾裡面看下,有兩個檔案
8:從上面的内容我們就能能看到,繼承了主分支的内容,好啦,所有的内容我們都寫完了,現在再回到主分支上,看看主分支上有什麼檔案
指令:git checkout master
主分支上還是隻有login.txt的檔案,這就代表我們從主分支分出去的分支的内容都不會影響主分支上的内容
ok,搞了這麼久,終于把boss的内容和技術老大說的内容弄完了,不過故事還沒有結束,接下來,我們就會把分支上的内容合并到我們的主分支上,今天就寫到這裡吧,一休哥,休息休息,想了解接下來的内容看看下一篇吧。O(∩_∩)O哈哈~
**稍等,還有一個注意事項:
1:在開辟新分支的時候需要注意,首先需要用git init初始化庫,再有一個就是主分支上要有有效檔案,不然會報錯(fatal:not a valid object name :’master’;)
2:在切換分支的時候一定要先确定,之前對該分支内的檔案進行操作(add commit)後是否送出到了本地主倉庫,如果沒有,是無法進行分支切換的**