Java八股文面試全套真題【含答案】- Git篇

Git 是什么?它有什么作用?
Git 是一種分布式版本控制系統(tǒng),用于管理源代碼的變更和追蹤。它可以記錄文件更改的歷史,幫助多人協(xié)同開發(fā),并提供了回滾、分支管理等功能。Git 和 SVN(或其他版本控制系統(tǒng))有什么區(qū)別?
SVN 是集中式版本控制系統(tǒng),需要中央服務(wù)器來(lái)存儲(chǔ)所有代碼庫(kù),并且每次操作都需要連接服務(wù)器。Git 是分布式版本控制系統(tǒng),每個(gè)開發(fā)者都有完整的代碼庫(kù),可以離線工作,并且更加靈活、高效。Git 中常用的基本命令有哪些?
git init
:初始化 git 倉(cāng)庫(kù)。git add
:添加文件或目錄到暫存區(qū)。git commit
:創(chuàng)建一個(gè)新的提交。git status
:查看工作區(qū)狀態(tài)。git log
:查看提交日志。git branch
:查看、創(chuàng)建和刪除分支。git checkout
:切換分支或恢復(fù)文件。git merge
:合并分支。git pull
:從遠(yuǎn)程倉(cāng)庫(kù)拉取變更。git push
:將變更推送到遠(yuǎn)程倉(cāng)庫(kù)。什么是 Git 分支?如何創(chuàng)建和合并分支?
Git 分支是指不同的代碼開發(fā)線,它允許在不影響主線的情況下進(jìn)行代碼修改。創(chuàng)建分支可以使用git branch 分支名
命令,切換分支可以使用git checkout 分支名
命令,合并分支可以使用git merge 分支名
命令。Git 中的三個(gè)工作區(qū)是什么?它們有什么區(qū)別?
Git 中的三個(gè)工作區(qū)是工作區(qū)(Working Directory)、暫存區(qū)(Staging Area)和版本庫(kù)(Repository)。工作區(qū)是存放項(xiàng)目文件的目錄。
暫存區(qū)是用于準(zhǔn)備提交的文件暫存的區(qū)域。
版本庫(kù)是存儲(chǔ)提交歷史的地方。
Git 中的
.gitignore
文件有什么作用?如何使用它?.gitignore
文件是用來(lái)指定需要忽略的文件或目錄,這些文件或目錄不會(huì)被提交到版本庫(kù)中??梢栽?.gitignore
文件中使用通配符來(lái)規(guī)定需要忽略的文件或目錄。Git 的工作流程是怎樣的?
Git 的工作流程一般包括以下幾個(gè)步驟:在工作區(qū)修改文件。使用
git add
將更改的文件添加到暫存區(qū)。使用
git commit
將暫存區(qū)的文件提交到版本庫(kù)。如何在本地倉(cāng)庫(kù)中撤銷提交的更改?
可以使用git reset HEAD^
命令來(lái)撤銷最近的提交,并將修改的文件恢復(fù)到暫存區(qū)。如果需要完全撤銷提交,還可以使用git reset --hard HEAD^
命令。Git 中的 rebase 和 merge 有什么區(qū)別?
git rebase
是將一條分支上的提交應(yīng)用到另一條分支上,以使提交歷史線條更加線性。git merge
是將一個(gè)分支的更改合并到另一個(gè)分支上,并生成一個(gè)新的合并提交來(lái)合并變更。什么是 Git 的鉤子(hooks)?有哪些常用的鉤子?
Git 的鉤子是在特定事件發(fā)生時(shí)執(zhí)行自定義腳本的機(jī)制。常見的 Git 鉤子有:pre-commit
:在提交之前運(yùn)行。post-commit
:在提交之后運(yùn)行。pre-push
:在推送之前運(yùn)行。post-push
:在推送之后運(yùn)行。如何解決 Git 合并沖突?
Git 合并沖突是指在合并分支時(shí),同一個(gè)文件的同一個(gè)位置有不同的修改。解決沖突的方法一般包括手動(dòng)解決沖突、標(biāo)記沖突和使用工具解決沖突。Git 中的標(biāo)簽(tag)和分支有什么區(qū)別?如何創(chuàng)建和使用標(biāo)簽?
標(biāo)簽是指向某個(gè)特定提交的靜態(tài)引用,可以標(biāo)記版本或重要的里程碑。而分支是不同的代碼開發(fā)線。
創(chuàng)建標(biāo)簽可以使用
git tag 標(biāo)簽名 提交ID
命令,創(chuàng)建輕量標(biāo)簽可以使用git tag 標(biāo)簽名
命令。使用標(biāo)簽可以使用git checkout 標(biāo)簽名
命令。Git 中如何查看提交歷史?
可以使用git log
命令來(lái)查看提交歷史,并可以添加不同的參數(shù)來(lái)定制查看的信息,如git log --oneline
查看簡(jiǎn)潔的提交記錄。如何查看 Git 中的文件差異?
可以使用git diff
命令來(lái)查看工作區(qū)與暫存區(qū)之間的差異,使用git diff HEAD
命令查看工作區(qū)與最新提交之間的差異。如何從遠(yuǎn)程倉(cāng)庫(kù)克隆項(xiàng)目到本地?
可以使用git clone 遠(yuǎn)程倉(cāng)庫(kù)地址
命令來(lái)克隆遠(yuǎn)程倉(cāng)庫(kù)到本地,并自動(dòng)建立關(guān)聯(lián)。?