【Git】常見場景與常用命令

前言

    git是在公司工作中必不可少的開發工具之一,也是圍繞着GitHub進行代碼更新等操作。所以學會git和github的相關操作是開發必不可少的步驟。而對於新人來說,或許平日裏對與GitHub的使用,只是進行了代碼的存儲和搜索,但是要說維護卻不一定會有。

所以,新人的進公司的第一課,就是要學會怎麼樣去使用git和GitHub。

    接下來,將分成三個模塊進行講解工作中如何去使用GitHub和git的命令操作等。

第一塊:Github和工作的場景概覽

 

步驟說明:

注意:upstream 爲約定公司代碼上游的命名,而origin爲自己forked的公司代碼庫名。兩者都可以隨意定義,但是建議按照約定的說法進行設定。

  1. Forked:需要將公司的遠程代碼upstream庫複製一份到自己的GitHub當中,方便以後的pull requst 從自己庫到公司代碼庫

  2. Git clone upstream’s repo to local :克隆公司代碼文件到本地一份

  3. Checkout a new branch for your work from ’test’(branch):確定本地要使用的主要分支,一般克隆下來的公司代碼庫,默認當前分支是master,如果有特別的需要,比如某個分支是特別的存在,或者這個分支纔是主要要維護的,必須先checkout到這個分支上,例如,本例中使用’test’作爲需要的分支名。然後從’test’ checkout 出一個新的分支,比如是’test_a'

  4. Push the change of new branch to your personal repo:將修改的分支是要push到自己的origin庫中,不允許直接提交到upstream

  5. Create a pull request(new branch) to upstream target branch:此時提交上的分支名爲’test_a’(origin),要提出pull request合進去到upstream中的’test’分支中!對應哪個分支修改的內容必須提到哪個分支中去!

  6. Rebase last code:如果pull requst被code reviewer批閱並且添加修改意見,而自己本地也進行了修改,但是還請注意,必須rebase下最新的代碼(也即從upstream的test分支進行rebase),以防止自己提交過程當中,其他人的代碼進庫,而可能造成衝突的情況(會需要再次修改,這樣會很糟糕)

  7. Rebase last code:對於本地上,強烈建議和推薦,就是要維護一個永遠乾淨的主要分支代碼,但凡需要進行修改代碼的相關操作,請從該乾淨且實時的local branch ‘test’ 分支checkout出新的分支,再進行後續的操作。

第二塊:常見git操作場景

  1. Pull Request需要修改的場景 (對應第一塊中的步驟即爲: 6 -> 4 ,沒有其他步驟!)

  2. 刪除分支的操作

    
    git push ${repo_url} --delete ${branch_name}
    * ${repo_url}表示遠程的庫名
    * ${branch_name}表示是遠程庫名下的分支
    

     

  3. rebase 合併兩個已經pr的commit

  4. git rebase最新代碼的步驟 (對應第一塊中的步驟即爲:6 , 7 兩種的rebase)

    git pull -r remote_repo_name branch_name
    
    samples : git pull -r upstream master

     

  5. 分割某一個包含兩個及多個commit的pr中的commit對應到不同issue的pr中去 

第三塊:常用git命令

git branch -v # 效果:看本地有多少分支

git log —all # 效果:查看所有分支記錄

git checkout -b newBranchName oldBranchName # 效果:基於oldBranchName創建新的分支newBranchName,並且切換過去

git diff commitIdOne commitIdTwo # 效果:比較兩個commitId的區別

git diff $branchOne $branchTwo -- <filename> # 效果:查看不同提交的指定文件的差異,此時比較的是兩個不同分支當中的某一個文件的具體差異!

git commit --amend --no-edit # 效果:對應在修改pr過程當中,或者多次修改,但是隻保留一次commit message,不再重寫commit message的情況

 

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