Git 基礎

Git 基礎

git 特點

  • 快速:幾乎所有操作都在本地運行

  • 分佈式:每個 clone 都是完整的生命週期副本

  • 工作區、暫存區(stage)、倉庫

場景教學

  1. 普通青年

    # 克隆代碼到本地
    git clone http://xxx/test-git && cd test-git
    # 創建文件
    touch README.md && echo "hello world"> README.md
    # 添加創建文件到暫存區
    git add README.md
    # 提交代碼到本地倉庫
    git commit -m"xxx" README.md
    # 拉取遠程代碼
    git pull
    # 推送代碼到遠程
    git push
    
  2. 文藝青年

    # 拉取代碼
    git pull
    # 創建 feature 分支
    git checkout -b feature/xxx
    # 查看分支,確定在新建的分支下
    git branch
    # 修改內容
    vim README.md
    # 查看狀態
    git status
    # 開發一半需要臨時切換到 master 分支做一些事情,並且不想提交到本地倉庫, 工作區代碼暫存
    git stash
    # 切換到 master 分支
    git checkout master
    # 處理完事情後切回 feature/xxx 分支繼續開發
    git checkout feature/xxx
    # 查看暫存區(stash)所有內容
    git stash list
    # 暫存區(stash)內容釋放到工作區
    git stash apply stash@{0}
    # 刪除暫存區(stash)內容
    git stash drop stash@{0}
    # 繼續開發,查看工作區和暫存區(stage)區別
    git diff
    # 確認後提交代碼
    git commit -m"xxx" -a
    # 切換到 master 分支合併代碼
    git checkout master
    git merge feature/xxx
    # 拉取代碼,提交代碼
    git pull
    git push
    # 刪除分支
    git branch -D feature/xxx
    
  3. 搞事青年

    # 拉取代碼
    git pull
    # 創建 feature 分支
    git checkout -b feature/xxx
    # 文件太多了耽誤事,先刪除幾個再說
    git rm -rf .
    # 添加文件修改代碼
    touch My.class && echo "myfunc"> My.class
    # 切換到 master 進行合併, 並提交代碼
    git checkout master
    git merge feature/xxx
    git pull
    git push
    # 發現文件被刪了,版本回退
    git reflog
    git reset --hard <commit id>
    # 強制推送到遠程倉庫--萬不得已不要使用
    git push -f
    

git flow

GitFlow

  1. 應用創建

    • 項目管理員創建應用倉庫
    • 創建 master 分支
    • 基於 master 分支開闢 develop 分支
  2. 開發迭代

    • 開發工程師基於 develop 分支開闢 feature/A、feature/B 等等,發佈 development 環境進行自測
    • 開發工程師合併所有 feature 分支到 develop 分支,發佈 test 環境 冒煙測試
    • 如果測試有 bug,迭代上面兩步,直到冒煙測試通過,然後提交測試
  3. 測試集成

    • 測試工程師人員基於開發工程師提測的 develop 分支在 test 環境進行集成測試
    • 開發工程師從 develop 分支開闢 feature 分支修復測試工程師發現的 bug,自測後合併入 develop 分支公測試工程師繼續測試
    • 迭代上面兩步直到集成測試通過,然後開闢 release 分支提交發布
  4. 預發驗證

    • 測試工程師將 release 分支部署 staging 環境進行迴歸驗證
    • 開發工程師在 release 分支修復測試工程師發現的 bug,直到迴歸測試通過
    • 開發工程師將 release 分支上的修復合併回 develop 分支,同時將 release 分支合併 master 分支
  5. 生產上線

    • 運維工程師將 master 分支發佈到 production 環境,測試工程師線上環境進行功能驗證
    • 開發工程師基於 master 分支開闢 hotfix 分支修復測試工程師發現的 bug
    • 測試工程師將 hotfix 分支部署 staging 環境進行 bugfix 驗證,直到驗證通過
    • 開發將 hotfix 分支合併 master 和 develop 分支
    • 迭代上面四步直到線上版本發佈通過,基於 master 分支開闢 tag 記錄版本

基本命令

  • 本地新建分支

    git checkout -b <branch>
    
  • 查看本地分支列表

    git branch
    
  • 切換分支

    git checkout <branch>
    
  • 工作區代碼恢復到本地版本倉庫

    git checkout <file>
    
  • 刪除分支

    git branch -D <branch>
    
  • 查看本地代碼狀態

     git status
    
  • 新加文件

    git add <file>
    
  • 刪除文件

    git rm <file>		
    
  • 刪除文件夾

    git rm -rf <folder>				
    
  • 提交到本地代碼倉庫

    git commit -m <message>
    
  • 拉取代碼到本地

    git pull origin <branch>
    
  • 提交代碼到遠程

    git push origin <branch>
    
  • 強制提交代碼到遠程

    git push -f origin <branch>
    
  • 在當前把其它分支合並過來

    git merge <branch>
    
  • 查看 git 提交歷史

    git log
    git log --pretty=oneline
    git reflog
    
  • 回退到歷史

    git reset --hard <commit_id>
    
  • 防止本地自己環境或者配置提交修改 .gitignore

    vim .gitignore
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章