欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Java的Git面試題有哪些

本篇內(nèi)容主要講解“Java的Git面試題有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java的Git面試題有哪些”吧!

目前創(chuàng)新互聯(lián)建站已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站運營、企業(yè)網(wǎng)站設(shè)計、黃南州網(wǎng)站維護等服務(wù),公司將堅持客戶導向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

問題一:什么是 Git 復刻(fork)?復刻(fork)、分支(branch)和克隆(clone)之間有什么區(qū)別?

復刻(fork) 是對存儲倉庫(repository)進行的遠程的、服務(wù)器端的拷貝,從源頭上就有所區(qū)別。復刻實際上不是 Git 的范疇。它更像是個政治/社會概念。

克隆(clone) 不是復刻,克隆是個對某個遠程倉庫的本地拷貝。克隆時,實際上是拷貝整個源存儲倉庫,包括所有歷史記錄和分支。

分支(branch) 是一種機制,用于處理單一存儲倉庫中的變更,并最終目的是用于與其他部分代碼合并。

問題二:“拉取請求(pull request)”和“分支(branch)”之間有什么區(qū)別?

分支(branch) 是代碼的一個獨立版本。

拉取請求(pull request) 是當有人用倉庫,建立了自己的分支,做了些修改并合并到該分支(把自己修改應(yīng)用到別人的代碼倉庫)。

問題三:“git pull”和“git fetch”之間有什么區(qū)別?

簡單來說,git pull 是 git fetch + git merge。

當你使用 pull,Git 會試著自動為你完成工作。它是上下文(工作環(huán)境)敏感的,所以 Git 會把所有拉取的提交合并到你當前處理的分支中。pull 則是 自動合并提交而沒有讓你復查的過程。如果你沒有細心管理你的分支,你可能會頻繁遇到?jīng)_突。

當你 fetch,Git 會收集目標分支中的所有不存在的提交,并將這些提交存儲到本地倉庫中。但Git 不會把這些提交合并到當前分支中。這種處理邏輯在當你需要保持倉庫更新,在更新文件時又希望處理可能中斷的事情時,這將非常實用。而將提交合并到主分支中,則該使用 merge。

問題四: 解釋 Forking 工作流程的優(yōu)點

Forking 工作流程 與其他流行的 Git 工作流程有著根本的區(qū)別。它不是用單個服務(wù)端倉庫充當“中央”代碼庫,而是為每個開發(fā)者提供自己的服務(wù)端倉庫。Forking 工作流程最常用于公共開源項目中。

Forking 工作流程的主要優(yōu)點是可以匯集提交貢獻,又無需每個開發(fā)者提交到一個中央倉庫中,從而實現(xiàn)干凈的項目歷史記錄。開發(fā)者可以推送(push)代碼到自己的服務(wù)端倉庫,而只有項目維護人員才能直接推送(push)代碼到官方倉庫中。

當開發(fā)者準備發(fā)布本地提交時,他們的提交會推送到自己的公共倉庫中,而不是官方倉庫。然后他們向主倉庫提交請求拉取(pull request),這會告知項目維護人員有可以集成的更新。

問題五: 告訴我 Git 中 HEAD、工作樹和索引之間的區(qū)別?

該工作樹/工作目錄/工作空間是你看到和編輯的(源)文件的目錄樹。

該索引/中轉(zhuǎn)區(qū)(staging area)是個在 /.git/index,單一的、龐大的二進制文件,該文件列出了當前分支中所有文件的 SHA1 檢驗和、時間戳和文件名,它不是個帶有文件副本的目錄。

HEAD是當前檢出分支的最后一次提交的引用/指針。

問題六:你能解釋下 Gitflow 工作流程嗎?

Gitflow 工作流程使用兩個并行的、長期運行的分支來記錄項目的歷史記錄,分別是 master 和 develop 分支。

Master,隨時準備發(fā)布線上版本的分支,其所有內(nèi)容都是經(jīng)過全面測試和核準的(生產(chǎn)就緒)。

Hotfix,維護(maintenance)或修復(hotfix)分支是用于給快速給生產(chǎn)版本修復打補丁的。修復(hotfix)分支很像發(fā)布(release)分支和功能(feature)分支,除非它們是基于 master 而不是 develop 分支。

Develop,是合并所有功能(feature)分支,并執(zhí)行所有測試的分支。只有當所有內(nèi)容都經(jīng)過徹底檢查和修復后,才能合并到 master 分支。

Feature,每個功能都應(yīng)留在自己的分支中開發(fā),可以推送到 develop 分支作為功能(feature)分支的父分支。

問題七: 什么時候應(yīng)使用 “git stash”?

git stash 命令把你未提交的修改(已暫存(staged)和未暫存的(unstaged))保存以供后續(xù)使用,以后就可以從工作副本中進行還原。

回顧:

$ git status

On branch master

Changes to be committed:

new file: style.css

Changes not staged for commit:

modified: index.html

$ git stash

Saved working directory and index state WIP on master: 5002d47 our new homepage

HEAD is now at 5002d47 our new homepage

$ git status

On branch master

nothing to commit, working tree clean

我們可以使用暫存(stash)的一個地方是,如果我們發(fā)現(xiàn)在上次提交中忘記了某些內(nèi)容,并且已經(jīng)開始在同一分支中處理下一個提交了:

# Assume the latest commit was already done

# start working on the next patch, and discovered I was missing something

# stash away the current mess I made

$ git stash save

# some changes in the working dir

# and now add them to the last commit:

$ git add -u

$ git commit --ammend

# back to work!

$ git stash pop

問題八: 如何從 git 中刪除文件,而不將其從文件系統(tǒng)中刪除?

如果你在 git add 過程中誤操作,你最終會添加不想提交的文件。但是,git rm 則會把你的文件從你暫存區(qū)(索引)和文件系統(tǒng)(工作樹)中刪除,這可能不是你想要的。換成 git reset 操作:

git reset filename # or

echo filename >> .gitingore # add it to .gitignore to avoid re-adding it

上面意思是,git reset <paths> 是 git add <paths> 的逆操作。

問題十: 是么時候使用“git rebase”代替“git merge”?

這兩個命令都是把修改從一個分支集成到另一個分支上,它們只是以非常不同的方式進行。考慮一下場景,在合并和變基前:

A <- B <- C [master]

^

\

D <- E [branch]

在 git merge master 之后:

A <- B <- C

^ ^

\ \

D <- E <- F

在 git rebase master 之后:

A <- B <- C <- D <- E

使用變基時,意味著使用另一個分支作為集成修改的新基礎(chǔ)。

何時使用:

如果你對修改不夠果斷,請使用合并操作。

根據(jù)你希望的歷史記錄的樣子,而選擇使用變基或合并操作。

更多需要考慮的因素:

1、分支是否與團隊外部的開發(fā)人員共享修改(如開源、公開項目)?如果是這樣,請不要使用變基操作。變基會破壞分支,除非他們使用 git pull --rebase,否則這些開發(fā)人員將會得到損壞的或不一致的倉庫。

2、你的開發(fā)團隊技術(shù)是否足夠嫻熟?變基是一種破壞性操作。這意味著,如果你沒有正確使用它,你可能會丟失提交,并且/或者會破壞其他開發(fā)者倉庫的一致性。

3、分支本身是否代表有用的信息?一些團隊使用功能分支(branch-per-feature)模式,每個分支代表一個功能(或錯誤修復,或子功能等)。在此模式中,分支有助于識別相關(guān)提交的集合。在每個開發(fā)人員分支(branch-per-developer)模式中,分支本身不會傳達任何其他信息(提交信息已有作者)。則在這種模式下,變基不會有任何破壞。

4、是否無論如何都要還原合并?恢復(如在撤銷中)變基,是相當困難的,并且/或者在變基中存在沖突時,是不可能完成的。如果你考慮到日后可能需要恢復,請使用合并操作。

到此,相信大家對“Java的Git面試題有哪些”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

本文題目:Java的Git面試題有哪些
文章轉(zhuǎn)載:http://www.chinadenli.net/article44/gicche.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)小程序開發(fā)品牌網(wǎng)站建設(shè)做網(wǎng)站建站公司網(wǎng)站導航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計