《吊打面試官》系列之GIT面試篇

爲什麼要編寫這個系列?git不熟悉的面試者很難表現出自己熟悉git工作流,那麼教大家如何在面試官面前大展雄風!!!

介紹

git是一款代碼版本控制軟件,目前已被廣泛的使用。因此優雅的使用git已經成了開發者的必備技能。 區別於SVN,git的特點是去中心化。

面試開始

以下都是面試經常會問到的問題,大家要記住哦!!!

1.平時開發你是用命令行工具還是可視化工具

面試官的初衷不是想知道你用什麼工具,而是想知道你是否熟悉常用的命令和分支,以及如何團隊合作

2.常用的分支

名稱 說明
master 主分支
develop 開發分支,包含確定即將發佈的代碼
feature 新功能分支,一般一個新功能對應一個分支
release 發佈定期要上線的功能
hotfix 當系統在線上出現bug時,需要火速處理

注:

hotfix是從master分支上切下來, master branch(生產服務器)先回滾到上一個穩定版本來避免bug再出現,開發人員處理掉這個bug後進行單 元測試,迴歸測試之後,master merge hotfix,別忘了develop branch也要merge 它!

3.常用的命令

不要只說 add commit pull push,這樣會顯得很初級,以下列出的命令還會有很多參數去延伸,大家要多學習哦

  • git add
  • git commit
  • git status
  • git pull
  • git push
  • git merge
  • git stash
  • git reset
  • git log
  • git diff
  • git remote
  • git clone
  • git branch
  • git config
  • git tag
  • git rm
  • git init
  • git fetch
  • git cherry-pick
  • git rebase

4.git checkout 可以實現哪些功能

  1. 切換分支
    git checkout 分支名
    
  2. 創建並切換到新分支
    git checkout  -b 分支名
    
  3. 撤銷對文件的修改(只能撤銷掉沒有add的文件)
    git checkout  文件名
    // 撤銷所有的文件
    git checkout .
    

5.合併其中一個feature分支有哪幾種實現方式

第一種

git pull origin feature

第二種

git merge feature

6.git pull和git fetch的區別

首先在作用上他們的功能是大致相同的,都是起到了更新代碼的作用。
pull=fetch+merge,pull的話,下拉遠程分支並與本地分支合併。
fetch只是下拉遠程分支,怎麼合併,可以自己再做選擇。

7.如何將dev分支的commitid複製到當前分支

// 先git log 找到想要複製的commitid
git cherry-pick commitid

8.講下git的工作流程

圖片來源於網絡
沒有具體的標準答案,上圖是一個工作流程,具體以往下幾個知識點分析

  • 每個分支的作用,以及是幹什麼的
  • 對於 feature 流程,都是從 develop 分支發起,分支合併以及功能管理
  • 對於 hotfix 流程,要從 master 分支發起,修復完要同時合併到 develop 和 master。

Git flow的優點是清晰可控,缺點是相對複雜,需要同時維護兩個長期分支。大多數工具都將master當作默認分支,可是開發是在develop分支進行的,這導致經常要切換分支,非常煩人。

面試結束

希望《吊打面試官》系列之GIT面試篇能爲你的面試提高通過率!!!
祝福每一位小夥伴都能找到滿意的工作!!!

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