前言?
首先我們知道git給我們提供了分支管理的功能
我們一般使用master分支作為線上環境,master分支一般是一個穩定的分支
我們通常是會創建一個其他分支進行開發,這樣不會影響線上的機器運行
如果沒有git提供這樣的分支功能,就無法做到這一套了
指令學習
假設軟件出現問題咋辦?
我們難道直接在master分支上進行修復嘛
這樣是不對的
我們通常會在master分支上開一個解決問題的分支
然后讓解決問題的分支合并master分支,再讓master分支合并解決問題的分支
最終刪除解決問題的分支即可
那我們如果不想在master分支上看到其他的分支的修改咋辦?
只需切到其他的分支
然后將工作區進行保存即可
這里使用
git stash
注:這里只能將git管理的文件進行儲存
修復bug分支的合并
git merge --no-ff -m "message"git pop stash //將存儲區的放出來
這里的--no-ff的解釋
強制刪除分支
git branch -D 分支名 這里如果使用 -d 就得先合并再刪除 場景就是假設領導讓你開發了一段時間又把這個功能砍掉了
名稱解釋
PR:(pull request)提交代碼審核表 給領導技術人員等進行審核
issues:一般是發現bug提交使用的 測試人員發現這類bug可以指定開發人員進行解決
克隆倉庫
git clone 網址
注意不能在本身就是遠程倉庫的本地倉庫中執行
遠程倉庫的默認名稱是origin
查看遠程倉庫
git remote -v
這里還有一個ssh的方式是通過公鑰和私鑰進行加密的
所以對應的本地倉庫也得有這兩個文件
推送
如果已經將分支進行綁定 直接使用 git push 即可 不然使用 git push origin master:master
拉取操作
git pull origin master:master
忽略操作
增加一個.gitignore文件即可 里面只要包含類似于 *.so文件即可忽略 某個文件不想忽略即可使用 !x.so來防止忽略
別名設置
git config --global alias.st ststus 這里就可以使用st代替status了
標簽管理
tag -> 對某次commitId的一次標識 比如v1.0 可以對版本進行回退git tag v1.0 git tag -a v0.9 -m "描述 " commitId 查看某個標簽的描述 git show v0.8刪除標簽 git tag -d v1.0推送標簽 git push origin v1.0一次性推送標簽git push origin --tags更新遠端 git push origin :v1.0
實戰場景
查看分支和遠程的連接關系 git branch -r本地和遠程都查看 git branch -a希望追蹤遠程關系 git checkout -b dev origin/dev 創建時和遠程分支鏈接查看遠程分支之間的連接關系 git branch -vv后來建立連接 git branch --set-upstream-to=origin/dev dev
假設現在兩個人開發同一個文件
a? ?給file文件加了一個aaa
b? ?給file文件加了一個bbb
存在先后關系的話
開發提交之前得先在本地進行沖突解決
然后提交PR給對應領導查看
注意還是先用dev merge master
再用master merge dev 最后提交
我們發現這種使用一個分支的開發方式太麻煩了
所以我們也可以讓一個資源私有一個分支
本地創建分支推送給遠程和用遠程直接創建都是可以的
這里推薦使用遠程創建
因為這樣能保證本地分支是最新的
使用 git push origin feature-1 這里就可以在遠端新增一個遠程分支成功了
假設這里b生病了
a得在他的項目繼續開發
開發完還是使用老樣子進行merge
最后介紹一下git -flow模型
這里主要是由五個分支來組合
master分支 主分支 對應生產環境
feature分支? 對應開發環境
develop分支? 一般是featrue分支合并上去的 是用來開發測試使用
release分支? 測試使用的分支 一般是測試環境? 也是基于develop分支
hotfix分支? 緊急需要修復的分支? 一般是master分支作為基礎創建的