真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Git相關(guān)知識(shí)點(diǎn)有哪些

這篇文章主要講解了“Git相關(guān)知識(shí)點(diǎn)有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Git相關(guān)知識(shí)點(diǎn)有哪些”吧!

創(chuàng)新互聯(lián)公司專注于南召企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城網(wǎng)站制作。南召網(wǎng)站建設(shè)公司,為南召等地區(qū)提供建站服務(wù)。全流程按需策劃設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

一、Git工作流程

Git相關(guān)知識(shí)點(diǎn)有哪些

以上包括一些簡單而常用的命令,但是先不關(guān)心這些,先來了解下面這4個(gè)專有名詞。

  • Workspace:工作區(qū)

  • Index / Stage:暫存區(qū)

  • Repository:倉庫區(qū)(或本地倉庫)

  • Remote:遠(yuǎn)程倉庫

工作區(qū)

程序員進(jìn)行開發(fā)改動(dòng)的地方,是你當(dāng)前看到的,也是***的。

平常我們開發(fā)就是拷貝遠(yuǎn)程倉庫中的一個(gè)分支,基于該分支進(jìn)行開發(fā)。在開發(fā)過程中就是對工作區(qū)的操作。

暫存區(qū)

.git目錄下的index文件, 暫存區(qū)會(huì)記錄 git add 添加文件的相關(guān)信息(文件名、大小、timestamp…),不保存文件實(shí)體,  通過id指向每個(gè)文件實(shí)體??梢允褂?git status 查看暫存區(qū)的狀態(tài)。暫存區(qū)標(biāo)記了你當(dāng)前工作區(qū)中,哪些內(nèi)容是被git管理的。

當(dāng)你完成某個(gè)需求或功能后需要提交到遠(yuǎn)程倉庫,那么***步就是通過 git add 先提交到暫存區(qū),被git管理。

本地倉庫

保存了對象被提交 過的各個(gè)版本,比起工作區(qū)和暫存區(qū)的內(nèi)容,它要更舊一些。

git commit 后同步index的目錄樹到本地倉庫,方便從下一步通過 git push 同步本地倉庫與遠(yuǎn)程倉庫的同步。

遠(yuǎn)程倉庫

遠(yuǎn)程倉庫的內(nèi)容可能被分布在多個(gè)地點(diǎn)的處于協(xié)作關(guān)系的本地倉庫修改,因此它可能與本地倉庫同步,也可能不同步,但是它的內(nèi)容是最舊的。

小結(jié)

  1. 任何對象都是在工作區(qū)中誕生和被修改;

  2. 任何修改都是從進(jìn)入index區(qū)才開始被版本控制;

  3. 只有把修改提交到本地倉庫,該修改才能在倉庫中留下痕跡;

  4. 與協(xié)作者分享本地的修改,可以把它們push到遠(yuǎn)程倉庫來共享。

下面這幅圖更加直接闡述了四個(gè)區(qū)域之間的關(guān)系,可能有些命令不太清楚,沒關(guān)系,下部分會(huì)詳細(xì)介紹。

Git相關(guān)知識(shí)點(diǎn)有哪些

二、常用Git命令

Git相關(guān)知識(shí)點(diǎn)有哪些

網(wǎng)上找了個(gè)圖,別人整理的一張圖,很全很好,借來用下。下面詳細(xì)解釋一些常用命令。

HEAD

Git相關(guān)知識(shí)點(diǎn)有哪些

在掌握具體命令前,先理解下HEAD。

HEAD,它始終指向當(dāng)前所處分支的***的提交點(diǎn)。你所處的分支變化了,或者產(chǎn)生了新的提交點(diǎn),HEAD就會(huì)跟著改變。

add

Git相關(guān)知識(shí)點(diǎn)有哪些

add相關(guān)命令很簡單,主要實(shí)現(xiàn)將工作區(qū)修改的內(nèi)容提交到暫存區(qū),交由git管理。

Git相關(guān)知識(shí)點(diǎn)有哪些

commit

Git相關(guān)知識(shí)點(diǎn)有哪些

commit相關(guān)命令也很簡單,主要實(shí)現(xiàn)將暫存區(qū)的內(nèi)容提交到本地倉庫,并使得當(dāng)前分支的HEAD向后移動(dòng)一個(gè)提交點(diǎn)。

Git相關(guān)知識(shí)點(diǎn)有哪些

branch

Git相關(guān)知識(shí)點(diǎn)有哪些

涉及到協(xié)作,自然會(huì)涉及到分支,關(guān)于分支,大概有展示分支,切換分支,創(chuàng)建分支,刪除分支這四種操作。

Git相關(guān)知識(shí)點(diǎn)有哪些

關(guān)于分支的操作雖然比較多,但都比較簡單好記。

merge

Git相關(guān)知識(shí)點(diǎn)有哪些

merge命令把不同的分支合并起來。如上圖,在實(shí)際開放中,我們可能從master分支中切出一個(gè)分支,然后進(jìn)行開發(fā)完成需求,中間經(jīng)過R3,R4,R5的commit記錄,***開發(fā)完成需要合入master中,這便用到了merge。

Git相關(guān)知識(shí)點(diǎn)有哪些

一般在merge之后,會(huì)出現(xiàn)conflict,需要針對沖突情況,手動(dòng)解除沖突。主要是因?yàn)閮蓚€(gè)用戶修改了同一文件的同一塊區(qū)域。如下圖所示,需要手動(dòng)解除。

Git相關(guān)知識(shí)點(diǎn)有哪些

rebase

Git相關(guān)知識(shí)點(diǎn)有哪些

rebase又稱為衍合,是合并的另外一種選擇。

在開始階段,我們處于new分支上,執(zhí)行 git rebase dev  ,那么new分支上新的commit都在master分支上重演一遍,***checkout切換回到new分支。這一點(diǎn)與merge是一樣的,合并前后所處的分支并沒有改變。  git rebase dev ,通俗的解釋就是new分支想站在dev的肩膀上繼續(xù)下去。rebase也需要手動(dòng)解決沖突。

rebase與merge的區(qū)別

現(xiàn)在我們有這樣的兩個(gè)分支,test和master,提交如下:

D---E test      / A---B---C---F master

在master執(zhí)行 git merge test ,然后會(huì)得到如下結(jié)果:

D--------E      /          \ A---B---C---F----G   test, master

在master執(zhí)行 git rebase test ,然后得到如下結(jié)果:

A---B---D---E---C'---F'   test, master

可以看到,merge操作會(huì)生成一個(gè)新的節(jié)點(diǎn),之前的提交分開顯示。而rebase操作不會(huì)生成新的節(jié)點(diǎn),是將兩個(gè)分支融合成一個(gè)線性的提交。

如果你想要一個(gè)干凈的,沒有merge commit的線性歷史樹,那么你應(yīng)該選擇git rebase

如果你想保留完整的歷史記錄,并且想要避免重寫commit history的風(fēng)險(xiǎn),你應(yīng)該選擇使用git merge

reset

Git相關(guān)知識(shí)點(diǎn)有哪些

reset命令把當(dāng)前分支指向另一個(gè)位置,并且相應(yīng)的變動(dòng)工作區(qū)和暫存區(qū)。

Git相關(guān)知識(shí)點(diǎn)有哪些

revert

Git相關(guān)知識(shí)點(diǎn)有哪些

git revert用一個(gè)新提交來消除一個(gè)歷史提交所做的任何修改。

revert與reset的區(qū)別

Git相關(guān)知識(shí)點(diǎn)有哪些

  • git revert是用一次新的commit來回滾之前的commit,git reset是直接刪除指定的commit。

  • 在回滾這一操作上看,效果差不多。但是在日后繼續(xù)merge以前的老版本時(shí)有區(qū)別。因?yàn)間it  revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch時(shí),導(dǎo)致這部分改變不會(huì)再次出現(xiàn),減少?zèng)_突。但是git  reset是之間把某些commit在某個(gè)branch上刪除,因而和老的branch再次merge時(shí),這些被回滾的commit應(yīng)該還會(huì)被引入,產(chǎn)生很多沖突。

  • git reset 是把HEAD向后移動(dòng)了一下,而git  revert是HEAD繼續(xù)前進(jìn),只是新的commit的內(nèi)容和要revert的內(nèi)容正好相反,能夠抵消要被revert的內(nèi)容。

push

上傳本地倉庫分支到遠(yuǎn)程倉庫分支,實(shí)現(xiàn)同步。

Git相關(guān)知識(shí)點(diǎn)有哪些

其他命令

Git相關(guān)知識(shí)點(diǎn)有哪些

感謝各位的閱讀,以上就是“Git相關(guān)知識(shí)點(diǎn)有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Git相關(guān)知識(shí)點(diǎn)有哪些這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!


分享名稱:Git相關(guān)知識(shí)點(diǎn)有哪些
本文網(wǎng)址:http://weahome.cn/article/jeecjd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部