常規操做html
master
(正式環境)切分支 feat-xxx-xxx
(當前業務簡稱)feat-xxx-xxx
代碼merge
(合併)到text-release
(測試環境)feat-xxx-xxx
代碼合併到master
多人多分支一次合併到master
(俗稱發車)git
master
切分支v2.x.x
(待發布版本)feat-xxx-xxx
、feat-yyy-yyy
等分支在github/gitlab網頁上以New merge request
(mr)的形式發送合併請求(pull request
)code review
事後,再將v2.x.x
分支合併到master
mr存在衝突時(🌟爲防止衝突建議使用這裏的完整流程比較穩🌟)github
master
切分支feat-xxx-xxx
feat-xxx-xxx
代碼merge到rest-release
提交測試master
切分支v2.x.x
feat-xxx-xxx
合併v2.x.x
裏面的代碼(由於你在開發的過程當中master/v2.x.x可能已經合了其餘同事的代碼了)feat-xxx-xxx
經過New merge request
的方式新建一個pull request
到v2.x.x
code review
事後Merge
代碼git stash
(代碼暫存,非commit)
通常用在你在有代碼修改的狀況下須要切分支又不想提交commit時可用vim
git stash
存儲當前changegit stash save "save message"
給當前存儲事件添加備註git stash list
查看stash存儲列表git stash pop
恢復以前緩存的工做目錄並刪除這一條stashgit reset
(代碼回退)緩存
git log
//得到commit信息git reset --soft xxxxxxx(commit hash值)
--hard
是不保存當前已修改的,--soft
是保存當前已修改的git push -f
//強制提交代碼git reflog
(時光穿梭機)ssh
git reflog
//得到全部的git操做git reset --hard xxxxxxxx
git cherry-pick
gitlab
git cherry-pick xxxxxxx(須要被加上來的commit hash)
fork庫拉取上游代碼測試
git remote add upstream https://github.com/xx/repo
git pull upstream
git pull upstream master
本地更新遠程分支列表fetch
git remote update origin --prune
git fetch
是更新全部遠程分支到本地(遠程分支被刪除的話本地origin更新後也會被刪除)git merge
(合併代碼)rest
git merge Branch1
git rebase
(合併提交的commit)
New merge request
來操做查看當前.git
配置
git config user.name git config user.email
設置當前.git
用戶/郵箱
git config user.name "xxx" git config user.email "xxx@abc.com"
設置全局.git
配置
git config --global user.name "xxx" git config --global user.email "xxx@abc.com"
當存在多個gitlab/github帳號時,
參考: https://www.cnblogs.com/hafiz...
爲公司生成一對祕鑰ssh key
ssh-keygen -t rsa -C 'yourEmail@xx.com' -f ~/.ssh/gitlab-rsa
爲github生成一對祕鑰ssh key
ssh-keygen -t rsa -C 'yourEmail2@xx.com' -f ~/.ssh/github-rsa
在~/.ssh目錄下新建名稱爲config的文件(無後綴名)(可經過vim config
建立)。
用於配置多個不一樣的host使用不一樣的ssh key,內容以下:
# gitlab Host gitlab.com HostName gitlab.com PreferredAuthentications publickey IdentityFile ~/.ssh/gitlab-rsa # github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/github-rsa
大廠真心累🥱,作的活都同樣,只不過更加精細化一些。也就在發佈日當天發佈事後纔有1、、我的時間充充🔋