1. 程式人生 > 實用技巧 >git 分支管理

git 分支管理

Git是目前專案中常用的版本管理工具, 當開發者只有一個人的時候基本用不到分支管理,但是當多個開發者協同工作時,分支管理就顯得非常重要了。

分支管理首先可以讓你在不影響現有版本的情況下開發新功能,還可以在不影響使用的情況下修復bug。

下面就說說,常用的分支相關的命令。

git branch -a    用於檢視所有分支(包括伺服器端和本地分支),其中前面帶星號 * 的表示工作在當前分支上

git branch      僅檢視的是本地分支

git branch -v    檢視每一個分支的最後一次提交

git branch branchName 建立一個本地分支(僅僅是建立,並不會切換到建立的分支上)

git checkout branchName 切換到該分支上。切換分支需注意:一定要注意你工作目錄裡的檔案會被改變。 如果是切換到一個較舊的分支,你的工作目錄會恢復到該分支最後一次提交時的樣子。 如果 Git 不能幹淨利落地完成這個任務,它將禁止切換分支。

git checkout -b test   建立 test 分支,並切換到 test 分支(上面兩個命令合一)

git merge test   合併test分支,此時一定要先切換到你要merge的分支上

git branch -d test   刪除test分支,當你將test分支合併到主分支之後,test分支已經沒有用了,此時可以使用此命令刪除掉。如果該分支有未合併的工作 刪除時會失敗,-d --> -D 會強行刪除。

當你分支太多導致不清楚那個合併,那個未合併時,可以通過

git branch --merged   來檢視已合併的分支,

git branch --no-merged   來檢視未合併的分支

git ls-remote   可以顯式地獲得遠端引用的完整列表

git remote add  新增一個新的遠端倉庫引用到當前的專案

git fetch   從伺服器上抓取本地沒有的資料時,它並不會修改工作目錄中的內容。 它只會獲取資料然後讓你自己合併。

git pull    在大多數情況下它的含義是一個 git fetch緊接著一個 git merge 命令。

      如果有一個像之前章節中演示的設定好的跟蹤分支,不管它是顯式地設定還是通過 clone 或 checkout 命令為你建立的,

      git pull 都會查詢當前分支所跟蹤的伺服器與分支,從伺服器上抓取資料然後嘗試合併入那個遠端分支。

git diff   檢視本地資源和遠端資源的差別。

Git 經常有一些命令的組合用法。

在本地:

git checkout -b dev   新建並切換到本地dev分支

在本地新建分支並推送到遠端

git checkout -b test

git push origin test 這樣遠端倉庫中也就建立了一個test分支

git push --set-upstream origin branchName 將本地分支關聯到遠端分支(下次提交就可以直接git push了)

關於 gitignore 檔案,如果是先上傳了一部分,然後才配置的 ignore 檔案,則不會生效。

需要如下操作:

git rm -r --cached .

git add .

git commit -m "update .gitignore"

例如:

建立 uniAPP專案,最開始將 unpackage 資料夾也上傳了,然後才新增的 .gitignore 檔案。此時是不會生效的。

因為 當你在git庫中編寫某些程式碼檔案,並已經stage該檔案之後,你發現某個檔案你不想用了,想在以後的改變中忽略它。然後你再你的.gitignore檔案中加入該檔名,結果它並沒有被忽略。
**.gitignore檔案只是ignore沒有被staged(cached)檔案,對於已經被staged檔案,加入ignore檔案時一定要先從staged移除。

所以需要:

git rm -r --cached unpackage/

git add .

git commit -m "xxxxx"