更新時間:2023-02-13 15:59:09 來源:動力節點 瀏覽1300次
1.什么是Git?
我建議你先經過了解 git 的架構再來回答這個問題,以下圖所示,試著解釋一下這個圖:算法
Git 是分布式版本控制系統(DVCS)。它能夠跟蹤文件的更改,并容許你恢復到任何特定版本的更改。
與 SVN 等其余版本控制系統(VCS)相比,其分布式架構具備許多優點,一個主要優勢是它不依賴于中央服務器來存儲項目文件的全部版本。
每一個開發人員均可以“克隆”我在圖中用“Local repository”標注的存儲庫的副本,而且在他的硬盤驅動器上具備項目的完整歷史記錄,所以當服務器中斷時,你須要的全部恢復數據都在你隊友的本地 Git 存儲庫中。
還有一個中央云存儲庫,開發人員能夠向其提交更改,并與其余團隊成員進行共享,如圖所示,全部協做者都在提交更改“遠程存儲庫”。
2. 在 Git 中提交的命令是什么?
答案很是簡單。
用于寫入提交的命令是 git commit -a。bash
如今解釋一下 -a 標志, 經過在命令行上加 -a 指示 git 提交已修改的全部被跟蹤文件的新內容。還要提一下,若是你是第一次須要提交新文件,能夠在在 git commit -a 以前先 git add 。服務器
3.什么是 Git 中的“裸存儲庫”?
你應該說明 “工做目錄” 和 “裸存儲庫” 之間的區別。微信
Git 中的 “裸” 存儲庫只包含版本控制信息而沒有工做文件(沒有工做樹),而且它不包含特殊的 .git 子目錄。相反,它直接在主目錄自己包含 .git 子目錄中的全部內容,其中工做目錄包括:多線程
一個 .git 子目錄,其中包含你的倉庫全部相關的 Git 修訂歷史記錄。
工做樹,或簽出的項目文件的副本。
4.Git 是用什么語言編寫的?
你須要說明使用它的緣由,而不只僅是說出語言的名稱。我建議你這樣回答:
Git使用 C 語言編寫。 GIT 很快,C 語言經過減小運行時的開銷來作到這一點。
5.在Git中,你如何還原已經 push 并公開的提交?
There can be two answers to this question and make sure that you include both because any of the below options can be used depending on the situation: 1
這個問題能夠有兩個答案,你回答時也要保包含這兩個答案,由于根據具體狀況可使用如下選項:
刪除或修復新提交中的錯誤文件,并將其推送到遠程存儲庫。這是修復錯誤的最天然方式。對文件進行必要的修改后,將其提交到我將使用的遠程存儲庫
git commit -m "commit message"
建立一個新的提交,撤消在錯誤提交中所作的全部更改。可使用命令:
git revert <name of bad commit>
6. git pull 和 git fetch 有什么區別?
git pull 命令從中央存儲庫中提取特定分支的新更改或提交,并更新本地存儲庫中的目標分支。
git fetch 也用于相同的目的,但它的工做方式略有不一樣。當你執行 git fetch 時,它會從所需的分支中提取全部新提交,并將其存儲在本地存儲庫中的新分支中。若是要在目標分支中反映這些更改,必須在 git fetch 以后執行git merge。只有在對目標分支和獲取的分支進行合并后才會更新目標分支。為了方便起見,請記住如下等式:
git pull = git fetch + git merge
7.git中的“staging area”或“index”是什么?
For this answer try to explain the below diagram as you can see:
能夠經過下圖進行解釋:
在完成提交以前,能夠在稱為“staging area”或“index”的中間區域中對其進行格式化和審查。從圖中能夠看出,每一個更改首先在暫存區域中進行驗證,我將其稱為“stage file”,而后將更改提交到存儲庫。
8.什么是 git stash?
首先應該解釋 git stash 的必要性。
一般狀況下,當你一直在處理項目的某一部分時,若是你想要在某個時候切換分支去處理其余事情,事情會處于混亂的狀態。問題是,你不想把完成了一半的工做的提交,以便你之后就能夠回到當前的工做。解決這個問題的答案是 git stash。
再解釋什么是git stash。
stash 會將你的工做目錄,即修改后的跟蹤文件和暫存的更改保存在一堆未完成的更改中,你能夠隨時從新應用這些更改。
9.什么是git stash drop?
經過說明咱們使用 git stash drop 的目的來回答這個問題。
git stash drop 命令用于刪除隱藏的項目。默認狀況下,它將刪除最后添加的存儲項,若是提供參數的話,它還能夠刪除特定項。
下面舉個例子。
若是要從隱藏項目列表中刪除特定的存儲項目,可使用如下命令:
git stash list:它將顯示隱藏項目列表,如:
stash@{0}: WIP on master: 049d078 added the index file
stash@{1}: WIP on master: c264051 Revert “added file_size”
stash@{2}: WIP on master: 21d80a5 added number to log
若是要刪除名為 stash@{0} 的項目,請使用命令 git stash drop stash@{0}。
以上就是“2023年git分支管理面試題的相關資料”,你能回答上來嗎?如果想要了解更多的Java面試題相關內容,可以關注動力節點Java官網。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習