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"