大廠git工做流

基本操做

  • git add .
  • git commit -m "fix: xxx"
  • git push

開發工做流

  1. 常規操做html

    1. master(正式環境)切分支 feat-xxx-xxx (當前業務簡稱)
    2. feat-xxx-xxx 代碼merge(合併)到text-release(測試環境)
    3. 測試環境經過測試後,將feat-xxx-xxx代碼合併到master
  2. 多人多分支一次合併到master(俗稱發車)git

    1. 測試經過後,從master切分支v2.x.x(待發布版本)
    2. feat-xxx-xxxfeat-yyy-yyy等分支在github/gitlab網頁上以New merge request(mr)的形式發送合併請求(pull request
    3. 等待相關負責人code review事後,再將v2.x.x分支合併到master
  3. mr存在衝突時(🌟爲防止衝突建議使用這裏的完整流程比較穩🌟)github

    1. master切分支feat-xxx-xxx
    2. feat-xxx-xxx代碼merge到rest-release提交測試
    3. 測試經過後,從master切分支v2.x.x
    4. 🚩feat-xxx-xxx合併v2.x.x裏面的代碼(由於你在開發的過程當中master/v2.x.x可能已經合了其餘同事的代碼了)
    5. 這時有衝突解決衝突,而且本地代碼最好再運行一遍確保萬無一失
    6. 再將feat-xxx-xxx經過New merge request的方式新建一個pull requestv2.x.x
    7. 等待相關負責人code review事後Merge代碼

命令集

  1. git stash(代碼暫存,非commit)
    通常用在你在有代碼修改的狀況下須要切分支又不想提交commit時可用vim

    • git stash 存儲當前change
    • git stash save "save message" 給當前存儲事件添加備註
    • git stash list 查看stash存儲列表
    • git stash pop 恢復以前緩存的工做目錄並刪除這一條stash
  2. git reset(代碼回退)緩存

    • 第一步 git log //得到commit信息
    • 第二步 複製回退對應時間的commit hash值
    • 第三步 git reset --soft xxxxxxx(commit hash值)
    • --hard是不保存當前已修改的,--soft是保存當前已修改的
    • 第四步 git push -f //強制提交代碼
  3. git reflog(時光穿梭機)ssh

    • 代碼被不當心回退了怎麼修復回來?
    • 第一步 git reflog //得到全部的git操做
    • 第二步 git reset --hard xxxxxxxx
  4. git cherry-pickgitlab

    • 修復到了指定hash點時,這個以後的就沒了,如何加上來呢?
    • 第三步 git cherry-pick xxxxxxx(須要被加上來的commit hash)
  5. fork庫拉取上游代碼測試

    • 第一步 添加upstream上游倉庫的遠程連接
    • git remote add upstream https://github.com/xx/repo
    • 第二步 git pull upstream
    • 或者拉取指定分支(如master) git pull upstream master
  6. 本地更新遠程分支列表fetch

    • git remote update origin --prune
    • git fetch是更新全部遠程分支到本地(遠程分支被刪除的話本地origin更新後也會被刪除)
  7. git merge(合併代碼)rest

    • 合併Branch1代碼到當前分支 git merge Branch1
  8. git rebase(合併提交的commit)

    • 🚩7/8操做最好在網頁上經過建立New merge request來操做
    • 通常步驟是merge,而後旁邊有個選項是否rebase
    • 若是勾選上,那麼你merge過來的全部commits會被合併成一條commit

git config

  1. 查看當前.git配置

    git config user.name
    git config user.email
  2. 設置當前.git用戶/郵箱

    git config user.name "xxx"
    git config user.email "xxx@abc.com"
  3. 設置全局.git配置

    git config --global user.name "xxx"
    git config --global user.email "xxx@abc.com"
  4. 當存在多個gitlab/github帳號時,

    1. 好比gitlab是公司的,郵箱也是公司發的,而github郵箱是本身的
    2. 這個時候最好不要直接共用全局配置
    3. 最好在單個項目內配置
    4. 由於
    5. git是以郵箱爲準去匹配指定用戶的

多個ssh鑰匙共存

參考: https://www.cnblogs.com/hafiz...
  1. 爲公司生成一對祕鑰ssh key

    ssh-keygen -t rsa -C 'yourEmail@xx.com' -f ~/.ssh/gitlab-rsa
  2. 爲github生成一對祕鑰ssh key

    ssh-keygen -t rsa -C 'yourEmail2@xx.com' -f ~/.ssh/github-rsa
  3. 在~/.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、、我的時間充充🔋
相關文章
相關標籤/搜索