初學(xué)Git

Git知識筆記

當(dāng)前項(xiàng)目開發(fā)使用Git來進(jìn)行版本管理
當(dāng)前有以下分支:

  • Master:生產(chǎn)環(huán)境對應(yīng)代碼,最穩(wěn)定的代碼才能放入master
  • Develop:開發(fā)環(huán)境對應(yīng)代碼,基本是項(xiàng)目的最新代碼
  • Test:測試環(huán)境對應(yīng)代碼,開發(fā)自測完畢之后要上測試環(huán)境之前的代碼
  • Hotfix:熱補(bǔ)丁,用于補(bǔ)丁開發(fā)的代碼
  • UAT: 仿生產(chǎn)環(huán)境

初始開發(fā)的時(shí)候仍然是先獲取ssh秘鑰,然后通過git clone從iSource平臺獲取項(xiàng)目代碼
在clone的時(shí)候不僅僅是會下載當(dāng)前的最新代碼,同時(shí)會下載當(dāng)前項(xiàng)目的各個(gè)分支節(jié)點(diǎn)記錄,所以當(dāng)前項(xiàng)目倉庫中的各個(gè)分支記錄也會一并獲取到;

clone到代碼之后,首先git會根據(jù)你之前選擇的遠(yuǎn)端分支來創(chuàng)建一個(gè)本地git的分支,這里我使用的是develop分支(與遠(yuǎn)端倉庫的develop分支對應(yīng)),然后Git會創(chuàng)建一個(gè)HEAD來表明當(dāng)前選中的分支,這個(gè)時(shí)候HEAD就是指向develop的;

然后就可以開始碼代碼了,碼了一些代碼進(jìn)入項(xiàng)目目錄查看剛剛編輯的項(xiàng)目文件,發(fā)現(xiàn)Git系統(tǒng)已經(jīng)識別到了這些文件的狀態(tài)發(fā)生了改變,這個(gè)時(shí)候就需要先確保修改的文件加入了暫存區(qū)(Git ADD命令,實(shí)際在git clone的時(shí)候這些文件已經(jīng)加入了暫存區(qū),也可能是Tortoisegit自動識別文件加入暫存區(qū)),然后將改動提交到本地倉庫當(dāng)中去,提交完成之后,還需要將代碼推送到遠(yuǎn)端倉庫,在推送之前需要先將遠(yuǎn)端倉庫的最新內(nèi)容合并到本地倉庫,然后再做提交,這里使用Git pull命令(Git Fetch+Git Merge 先獲取遠(yuǎn)端存在而本地不存在的內(nèi)容,然后再將其與本地倉庫進(jìn)行合并),然后再push到遠(yuǎn)端倉庫,這個(gè)時(shí)候就可以使用最新的開發(fā)代碼部署環(huán)境進(jìn)行測試了

一般在提交完開發(fā)代碼之后,確認(rèn)代碼沒問題要把開發(fā)代碼與測試代碼進(jìn)行合并,首先在本地創(chuàng)建一個(gè)Test分支(之前本地是只有一個(gè)develop分支的),創(chuàng)建完成之后,切換到本地的Test分支,然后從遠(yuǎn)端倉庫拉取遠(yuǎn)端Test的內(nèi)容,此時(shí)本地存在了兩個(gè)分支,Test與Develop,但是HEAD已經(jīng)切換到了Test分支上面,然后將本地的Test分支與遠(yuǎn)端的Develop分支進(jìn)行合并(合并后本地Test分支已經(jīng)包含了最新開發(fā)的代碼了),最后將本地的Test分支push到遠(yuǎn)端Test,就可以讓測試開搞了;

Git本質(zhì)上是一個(gè)文件管理系統(tǒng),不過在實(shí)現(xiàn)上面使用了分布式的概念,作為文件管理系統(tǒng),Git會管理項(xiàng)目(當(dāng)前大目錄)下面的所有文件,負(fù)責(zé)文件的新增、刪除、修改的操作;
在對項(xiàng)目進(jìn)行初始化之后,項(xiàng)目目錄下會生成一個(gè).git目錄,里面主要有幾個(gè)重要的文件和目錄

  • objects:存儲所有項(xiàng)目中的文件內(nèi)容
  • refs:存儲分支信息
  • HEAD:記錄當(dāng)前使用的分支
  • index:存儲當(dāng)前Git系統(tǒng)暫存區(qū)信息
    在Git中,系統(tǒng)一直記錄的是文件的快照(文件的改動信息),Git會將文件的內(nèi)容以及修改信息進(jìn)行壓縮后存儲起來,使用Blob對象關(guān)聯(lián)單個(gè)文件,Tree對象關(guān)聯(lián)多個(gè)文件(整個(gè)項(xiàng)目的文檔)
    在進(jìn)行commit的時(shí)候,其實(shí)主要是創(chuàng)建了一個(gè)關(guān)聯(lián)了Tree對象的commit對象(以及commit的一些metadata)

后續(xù):
文件改動怎么記錄? 一并壓縮然后存儲到objects里面?。?br> 分支合并怎么弄? 怎么識別出哪些該合并,哪些是沖突?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Git 命令行學(xué)習(xí)筆記 Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來...
    sunnyghx閱讀 4,155評論 0 11
  • 1,查看所有遠(yuǎn)程分支:%git branch -r 2, 拉取遠(yuǎn)程分支并創(chuàng)建本地分支git checkout -...
    will666閱讀 2,196評論 0 18
  • 多種多樣的工作流使得在項(xiàng)目中實(shí)施Git時(shí)變得難以選擇。這份教程提供了一個(gè)出發(fā)點(diǎn),調(diào)查企業(yè)團(tuán)隊(duì)最常見的Git工作流。...
    JSErik閱讀 4,610評論 2 8
  • 一、 Git 常用命令速查 git branch 查看本地所有分支 git status 查看當(dāng)前狀態(tài) git c...
    LOVE_晴天閱讀 2,412評論 0 10
  • 程序猿工作中接觸到的 Git 命令其實(shí)不是很多,常用的就那些。有時(shí)候遇到一些小功能,就上網(wǎng)查一下,本文就針對用到的...
    Michael翔閱讀 826評論 0 4

友情鏈接更多精彩內(nèi)容