git常用操作

Basic Operation

  • 分支管理

    1. 切換分支
      git checkout <branch name>
      git checkout -b <branch name> #branch name 當前不存在
    2. 查詢當前所有分支
      git branch
    3. 新建分支
      git branch <branch name>
    4. 分支重命名
      git branch -m <old_branch> <new_branch>
    5. 刪除分支
      git branch -d <BranchName> #本地分支
      git push origin --delete <BranchName> #遠程分支
      git push origin :<BranchName> #遠程分支
  • 檢查當前git工作區狀態
    git status

  • 將修改添加到暫存區(文件的信息添加到索引庫)
    git add [file]

  • 提交本次更改記錄
    git commit
    我們這里用的是git cz

  • 查看commit log
    git log

  • git隱藏操作(stash)
    對當前工作區已修改文件進行臨時存儲,適合于代碼未提交但是其他git操作需要當前工作區提交的場景
    git status
    恢復工作區
    git status pop

  • git提交
    git push origin master #提交本地master到遠程的master分支
    git push origin test:test #提交本地test分支作為遠程的test分支

  • 遠程倉庫相關

    1. 添加遠程倉庫
      git remote add <name> <url>
      例如: git remote add upstream https://github.com/xxxx/yyyy.git
    2. 查看遠程庫詳情
      git remote -v
    3. 同步遠程庫
      git fetch <name>
      git fetch upstream
  • 與遠程庫upstream同步
    git fetch upstream
    git checkout master #master與遠程庫upstream同步
    git rebase upstream/master

  • git比較兩個分支的文件的差異
    git diff branch1 branch2 --stat //顯示出所有有差異的文件列表
    git diff branch1 branch2 文件名(帶路徑) //顯示指定文件的詳細差異
    git diff branch1 branch2 //顯示出所有有差異的文件的詳細差異

  • 兩個分支cherry-pick
    git log 獲取某一分支需要cherry-pick到其他分支的commit id
    git checkout xxx 切換到需要合入commit的分支
    git cherry_pick <start-commit-id>…<end-commit-id> # start-commit-id 到 end-commit-id 之間所有的 commit,不包含start-commit-id
    git cherry_pick <start-commit-id>^…<end-commit-id> # start-commit-id 到 end-commit-id 之間所有的 commit,包含start-commit-id

    git cherry_pick commit_id1 commit_id2 與git cherry_pick commit_id2 commit_id1執行效果不同

Trouble Shooting

  • rebase常見問題
    rebase過程中如果出現沖突,解決沖突后,執行git add后繼續執行git rebase --continue
    取消已在進行中的rebase操作,執行git rebase --abort,版本回退到執行rebase操作前的狀態

  • push無法成功
    一般是由于本地代碼與遠程倉庫代碼不一致導致,有兩種解決辦法

    1. pull遠程倉庫,修改沖突后再提交
      git pull
      查看編輯沖突后再 git pull一下,就合并了。
      git status
      把本地分支test push到遠端分支
      git push

    2. 本地代碼覆蓋遠端代碼
      git push --force
      遠端分支多人使用情況下執行,有可能將他人的commit覆蓋刪除

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 本篇的基礎知識: git常用操作命令 cocoapods基本使用 cocoapods本地私有庫的使用 cocoap...
    Lovell_閱讀 615評論 1 0
  • https://backlog.com/git-tutorial/cn/intro/intro1_1.htmlht...
    zZ小菜鳥閱讀 758評論 0 0
  • git 幫助 git的三種狀態 已提交(committed),已修改(modified)和已暫存(staged) ...
    RevinDuan閱讀 1,193評論 0 0
  • 查看當前項目ip等信息:cat .git/config 編輯外網ip:vim .git/config 修改外網ip...
    華華00526閱讀 591評論 0 0
  • 你“不學中醫,你來中醫學院干嘛? 只要你有足夠的想學,你一定能學好中醫!” 今天凌晨兩點過下的火車,滴滴打車去學姐...
    唐萍TANGPING閱讀 147評論 0 0