分支管理
- git作爲分佈式代碼管理工具,強大的地方當然不止代碼託管那麼簡單,還包括git強大的團隊項目管理能力和分支合併功能!
話不多說創建分支:
- 我們進入到以前的項目裏:
git branch
你會看到我們當前所出的分支爲master。
git branch #查看當前分支狀態
git branch BobBranch #創建名爲BobBranch的分支
git checkout BobBranch #切換到BobBranch分支
git checkout -b test2 # 如果我們使用checkout -b 可以直接創建並切換到分支
刪除分支
git branch -D test2 #如果處於該分支,會出現刪除錯誤
分支提交
-
我先刪除一個文件
-
正常add 和commit
git add .
git commit -m "Branch delete file and commit test"
- 創建一個分支提交的別名Bob,通過branch分支提交
git remote add Bob https://github.com/WytheO/gitTest.git
git push -u Bob BobBranch
- 那麼結果是這樣,因爲你在配置git信息的時候,用戶名郵箱沒有更換,那麼分支狀態會顯示你最新的提交且所處於哪個開發中的分支:
合併分支
-
當你回到你的主分支時,你會發現有個提示你的代碼更新了,被誰誰分支。
-
主分支合併其他分支
git merge BobBranch #參數就是分支名
git status #查看發現commit有個分支信息的提交
- 主分支接收合併更新主分支
git push -u Wythe master #直接正常push,將BobBranch的提交push到主分支
可以看到主分支的test.txt也被刪除了。
Bug分支管理
- 假如我突然出現了一個緊急bug!而我還在寫代碼,新的代碼還沒有提交
- 建立當前進度標記
git stash # 在當前進度停留並創建標記
- 創建一個臨時解決問題的問題分支
git checkout -b issue001
因爲保存了當前代碼狀態,所以創建分支過來後文件修改狀態是沒有變化的、乾淨的
-
現在我去修改文件,模擬修改完成bug:
-
合併修改bug後的分支
git merge issue001
-
刪除臨時分支並繼續剛纔建立標籤位置的開發:
-
標記環境刪除
刪除之前必須先將臨時處理的修改提交到commit的暫存區,不然刪除標記的時候,先前保存的修改狀態會覆蓋分支處理問題時的修改!
git stash apply # 退出當前保存的標記
git stash drop # 刪除保存的標記
git stash list # 查看保存的stash標記
git stash pop # 退出並刪除標記
請忽略記事本打開後保存的編碼出錯。
創建版本信息
git tag dev1.0.0 # dev1.0.0可以隨便修改
git reflog