国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

邯鄲網(wǎng)站建設(shè)縱橫廣告軟文怎么寫

邯鄲網(wǎng)站建設(shè)縱橫,廣告軟文怎么寫,東莞南城網(wǎng)站建設(shè),wordpress 定制縮略圖目錄 初識git 本地倉庫 認(rèn)識工作區(qū)、暫存區(qū)、版本庫 add操作與commit操作 master文件與commit id 修改文件 版本回退 撤銷修改 刪除文件 初識git Git 是一個分布式版本控制系統(tǒng),主要用于跟蹤文件的更改,特別是在軟件開發(fā)中。 為什么要版本…

目錄

初識git?

本地倉庫

認(rèn)識工作區(qū)、暫存區(qū)、版本庫

add操作與commit操作?

master文件與commit id

修改文件

版本回退?

撤銷修改?

刪除文件


初識git?

Git 是一個分布式版本控制系統(tǒng),主要用于跟蹤文件的更改,特別是在軟件開發(fā)中。


為什么要版本控制?

需求:假設(shè)你的導(dǎo)師讓你為一件產(chǎn)品寫出一份文檔。

當(dāng)你寫完以后,你拿給你的導(dǎo)師,你的導(dǎo)師并不滿意,讓你拿回去進(jìn)行修改。此時你不進(jìn)行版本控制,直接在原文檔上進(jìn)行修改,最終你改完以后又拿給你的導(dǎo)師,你的導(dǎo)師還是不滿意。以此往復(fù),你對原文檔進(jìn)行了10多次的修改,而此時你的導(dǎo)師又改主意了,讓你拿出第一次修改后的文檔,你該怎么辦呢?

若是不進(jìn)行版本控制,那么上述問題是無解的,因?yàn)槟闶侵苯訉υ臋n進(jìn)行的修改!

所謂的版本控制,就是讓你有方式對自己修改的每一份代碼都有備份!版本控制器的核心功能就是對這些備份進(jìn)行管理。

版本控制器的本質(zhì)就是記錄每次的修改以及版本迭代的一個管理系統(tǒng)

git是目前最主流的版本控制器!git可以控制電腦上所有格式的文檔。對于開發(fā)人員來說,git最主要的作用是可以用來管理源代碼文件

  • 對于文本文件來說,文件每一次上傳到git,git都會記錄你本次修改的內(nèi)容,如:第二行新增了xxx
  • 對于二進(jìn)制文件來說,git并不會記錄它修改的內(nèi)容,只會記錄文件大小的變化?

本地倉庫

為什么要有本地倉庫??

git是用于管理我們的文件的一個版本控制器,如果文件被分散在電腦的各個角落,git是無法進(jìn)行管理的,所以git管理文件要求我們的文件必須是放在git倉庫中的?


如何創(chuàng)建本地倉庫

第一步:需要創(chuàng)建一個目錄

第二步 :在創(chuàng)建好的目錄中使用如下指令

git init

輸入完上述指令以后,會發(fā)現(xiàn)我們的目錄下多了一個.git文件

這個文件是.git文件是git提供用于追蹤并管理我們倉庫的文件,一般來說不要手動修改.git中的內(nèi)容


如何配置本地倉庫?

配置本地倉庫時,最主要配置的兩個信息:

  • name
  • email

若不配置上述兩個信息,git會報錯

配置用戶名稱:

git config user.name "[用戶名稱]"

例如:

[yyf@VM-24-5-centos gitcode]$ git config user.name "yyf"

配置email郵箱地址:

git config user.email "[郵箱地址]"

?例如:

[yyf@VM-24-5-centos gitcode]$ git config user.email "123123@qq.com"

?查看配置信息:

git config -l

?刪除配置信息:

git config --unset [鍵值]

鍵值:user.name、user.email都是鍵值,查看配置信息時"="左邊的都是鍵值

例如:

?一個主機(jī)當(dāng)中,可以存在很多個本地倉庫。并且我們可以一次設(shè)置所有本地倉庫的配置信息

設(shè)置全局配置信息:

git config --global [配置鍵值] "[配置值]"

例如:

git config --global user.email "123123123@qq.com"

刪除全局配置信息:

git config --global --unset [配置鍵值]

認(rèn)識工作區(qū)、暫存區(qū)、版本庫

?

如圖,在包含.git文件的gitcode目錄下我創(chuàng)建了一個ReadMe文件

但實(shí)際上這個文件并不能被git管理。這是因?yàn)間itcode文件并不是真實(shí)的git倉庫。

真正的git倉庫是.git文件

.git文件又被稱為版本庫/倉庫!

雖然.git是倉庫,但不能直接手動修改.git中的內(nèi)容,這是不被允許的!

由于.git不能直接被修改,所以一般我們把要被管理的文件放在包含.git文件的目錄下(圖上gitcode)。而這個目錄我們又稱之為工作區(qū)!

注意:.git文件雖然是在工作區(qū)目錄下,但.git文件不屬于工作區(qū)


如何把工作區(qū)文件放到版本庫中,使git能管理該文件??

  • stage我們稱之為暫存區(qū)/索引
  • 圖中其他概念,后面會闡述
  • 如圖所示,把工作區(qū)的所有修改內(nèi)容添加到版本庫中,是通過add操作實(shí)現(xiàn)的
  • 修改內(nèi)容:在工作區(qū)中創(chuàng)建文件、修改工作區(qū)的文件、在工作區(qū)的刪除操作
  • 注意:add操作是把工作區(qū)的內(nèi)容放入到版本庫的暫存區(qū)當(dāng)中
  • 把暫存區(qū)的內(nèi)容放入到master中,是通過commit操作實(shí)現(xiàn)的!
  • 當(dāng)工作區(qū)的修改內(nèi)容被commit到master以后,才真正意味著該內(nèi)容被添加進(jìn)了版本庫中!

git的版本控制如何體現(xiàn)??

版本庫中除了暫存區(qū)與master以外還會存在一個objects,即對象區(qū)?

?

而我們每次在工作區(qū)中add一個修改內(nèi)容時,都會新增一個修改內(nèi)容的git對象,該對象會被維護(hù)到objects中?

所以我們每次修改工作區(qū)的內(nèi)容并生成一個新的git對象被維護(hù)到objects對象區(qū)中時,就相當(dāng)于我們維護(hù)了一個版本!

暫存區(qū)和對象區(qū)之間的關(guān)系:

  • objects對象區(qū)是實(shí)際存儲修改內(nèi)容對象的地方!
  • stage暫存區(qū)是存儲對象區(qū)的索引,所以一般來說stage都是較為輕量級的

commit操作做了什么?

  • commit操作實(shí)際上就是把暫存區(qū)中的索引樹,放入到master區(qū)
  • 所以master區(qū)中存儲的也是對象在對象區(qū)的索引,master區(qū)也是較為輕量級的?

?HEAD是一個指針,它指向了master區(qū),我們只要拿到HEAD指針就能拿到master的那棵索引數(shù)

注意:有了HEAD指針就能找到master指針,所以版本庫中并沒有master區(qū)?


add操作與commit操作?

add/commit...操作對應(yīng)的Linux命令?

add操作:git add [file1] [file2] ...

commit操作:git commit -m "message" ?(message:本次提交的描述信息!)

如下:

我們在commit時,可以看到git的管理信息,即一個文件被改變,增加了1行?

獲取工作區(qū)的所有的提交記錄:

git log

  • commit:即commit id,每一次提交時生成git對象的commit id都不同,它是通過某種哈希算法得到的!
  • Author:表示提交的人是誰,我們之前配置的name和email都會顯示在這
  • Date:提交日期?

若上述的獲取提交記錄的方法,你覺得內(nèi)容太多不好篩選,那么可以帶上如下選項(xiàng):

git log --pretty=oneline

?

?帶上選項(xiàng)以后,只打印commit id和描述信息!


master文件與commit id

之前說過HEAD指針是指向master的,所以HEAD中保存了master的地址

我們會發(fā)現(xiàn)master文件中存儲的實(shí)際上就是最近一次提交的commit id

之前說過commit id可以標(biāo)識git對象,若我們拿著這個commit id那么就能到objects對象區(qū)中找到該對象!

找之前我們得先把commit id分為兩個部分,最開始得兩位數(shù)表示得是文件夾的名稱,而其他位數(shù)表示的是文件的名稱


如何查看git對象的內(nèi)容?

查看git對象的內(nèi)容:

git cat-file -p [commid id]

輸入上述查看git對象后,我們能看到的內(nèi)容:

  • parent:表示上一次提交時的commit id
  • tree:Git 中的一個基本對象,表示某個特定目錄的結(jié)構(gòu)。它包含了文件和子目錄的信息。通過tree的commit id我們能查看到修改后的文件內(nèi)容

修改文件

git追蹤管理的其實(shí)是修改,而不是文件!

通過如下指令,可以查看是否有對暫存區(qū)的修改

git status

?

可以看到,若我僅僅是對工作區(qū)內(nèi)容進(jìn)行了修改,那么它會提示暫存區(qū)中的數(shù)據(jù)沒有被修改!并且也會提示被修改的文件是在工作區(qū)被修改的,即modified:ReadMe(工作區(qū)中的ReadMe文件被修改)

status僅僅能表示該文件內(nèi)容是否被修改,但不清楚具體修改了什么內(nèi)容

Linux中可以查看暫存區(qū)和工作區(qū)之間內(nèi)容的差異:

git diff [文件名]

?


版本回退?

什么是版本回退?

Git版本回退是指在Git版本控制系統(tǒng)中,將代碼庫的狀態(tài)恢復(fù)到先前的某個提交。這個操作通常用于撤銷不想要的更改、修復(fù)錯誤或查看歷史版本。

例如:

我們git在提交version0版本時,只有一行hello,world。

之后的version1版本,我們添加了一行hello,git。此時version1中有兩行的內(nèi)容

通過版本回退我們能拿到version0,即只有一行hello,world時的樣子


如何版本回退??

Git版本回退我們采用如下指令:

git reset [選項(xiàng)] [commit id]

reset進(jìn)行版本回退時,本質(zhì)是回退版本庫中的內(nèi)容?

若需要回退工作區(qū)以及暫存區(qū)的內(nèi)容,那么需要我們?yōu)樯鲜鲋噶钐砑由线x項(xiàng)

reset一共有三個選項(xiàng):

  • --soft
  • --mixed
  • --hard?

若我們reset時選擇--soft選項(xiàng),那么版本回退只回退的是版本庫中的內(nèi)容,對于工作區(qū)以及暫存區(qū)是不進(jìn)行回退的?

若我們reset時選擇--mixed選項(xiàng),那么版本回退時既回退版本庫中的內(nèi)容,還會回退暫存區(qū)的內(nèi)容,但工作區(qū)不會進(jìn)行版本回退

若我們reset時選擇--hard選項(xiàng),那么版本回退時工作區(qū)、暫存區(qū)、版本庫都會進(jìn)行版本回退


表格示例?

假設(shè)我們version0版本時,文件內(nèi)容為git。version1版本時,文件內(nèi)容添加了 world。那么對于該文件遵循如下表格?

工作區(qū)暫存區(qū)版本庫
不進(jìn)行resetgit worldgit worldgit world
--softgit worldgit worldgit
--mixedgit worldgitgit
--hardgitgitgit

版本回退時的注意事項(xiàng)?

對于--hard選項(xiàng),我們需要謹(jǐn)慎使用!

  • --hard選項(xiàng),會回退工作區(qū)的內(nèi)容,這意味著,假設(shè)有人在工作區(qū)中進(jìn)行開發(fā)。那么開發(fā)的代碼會直接被回退掉!

版本回退演示?

進(jìn)行版本回退時,我們需要知道之前版本的commit id

如下圖:我首先完成version0版本的提交

如下圖:我完成了version1版本的提交

首先是進(jìn)行版本回退之--hard的測試

如圖我們會發(fā)現(xiàn),testgit文件不見了,因?yàn)槲覀兓赝说陌姹臼亲钕纫淮翁峤坏陌姹?#xff0c;--hard選項(xiàng)直接把我們的工作區(qū)也回退了

如果后悔了怎么辦?

只要有commit id,再次進(jìn)行hard回退即可,如下:

我回退的是version1版本,此時能看到文件內(nèi)容又被回退回來了!

但這種后悔藥僅僅是因?yàn)槲姨崆爸?#xff0c;所以提前git log獲取了commit id。若我們把服務(wù)器關(guān)了,或者屏幕清了,如何能恢復(fù)呢?

使用git reflog指令可以查看到本地每一次提交時的記錄

紅框中的就是commit id,嚴(yán)格來說是commit id的一部分,但我們?nèi)匀豢梢允褂眠@個commit id的一部分進(jìn)行版本回退!

如下:

需要注意的是:由于實(shí)際開發(fā)中經(jīng)常使用git操作,所以這些commit id不是一直保存的,系統(tǒng)可能會自動清理掉一些commit id,若commit id被清理,那么就沒有后悔藥可以吃了,所以如果發(fā)生誤回退行為,請盡快操作!


原理?

?

如圖所示,版本庫中的objects對象區(qū)中會管理git對象,而所謂的版本回退就是讓master指針從一個git對象指向前一個git對象。整個過程只需要改變指針的指向,所以回退操作一般是非??斓?


撤銷修改?

什么時候需要撤銷修改??

如果我們在我們的工作區(qū)中寫了很長時間代碼,越寫越寫不下去,覺得自己寫的實(shí)在是垃圾,想恢復(fù)到上一個版本

此時根據(jù)不同情況,我們可以采取不同的恢復(fù)策略

注意:以下聊的撤銷修改指的是期望工作區(qū)、暫存區(qū)、版本庫中都撤銷修改!并且如下撤銷都是基于沒有進(jìn)行push操作(推送到遠(yuǎn)程倉庫)的前提下!


第一種情況:對于工作區(qū)的代碼,還沒有add操作?

我們期待的結(jié)果是工作區(qū)的代碼都進(jìn)行撤銷

對于這種情況,我們有三種解決方式:

  • 手動修改(不推薦),容易手動改出bug
  • git checkout -- [文件名]
  • reset進(jìn)行版本回退,之前說過不再贅述

對于git checkout --來說,就是回退到文件最近一次提交時的樣子!其中"--"是非常重要的,若不帶上"--"那么該指令是另外的含義!

如下示例:


第二種情況:已經(jīng)進(jìn)行add添加到了暫存區(qū)當(dāng)中,但還沒有commit?

我們期待的是工作區(qū)與暫存區(qū)的代碼都進(jìn)行撤銷

對于這種情況我們有兩種解決方案:

  • 使用reset帶上--hard選項(xiàng)一步到位直接到最近一次提交的樣子
  • 使用reset帶上--mixed選項(xiàng)轉(zhuǎn)化為第一種情況的樣子

hard我們之前已經(jīng)詳細(xì)使用過,接下來我們使用mixed進(jìn)行回退

mixed是默認(rèn)選項(xiàng),不需要顯示寫都可以!

同時我們不需要再去找commit id了

  • 若我們需要回退到當(dāng)前版本,那么commit id可以替換為HEAD
  • 若我們需要回退到上一個版本,那么commit id可以替換為HEAD^
  • 若我們需要回退到上一個版本,那么commit id可以替換為HEAD^^
  • 以此類推....
  • 這種方式也適用于--hard和--soft選項(xiàng)

?


第三種情況:工作區(qū)、暫存區(qū)、版本庫中都已經(jīng)添加了修改內(nèi)容?

?參考第二種情況!


刪除文件

對于工作區(qū)的文件,直接使用rm指令刪除即可

對于既在工作區(qū),又在暫存區(qū)的文件,又或者在版本庫中的文件,git中提供了rm方式刪除文件,git中的rm和刪除工作區(qū)的rm的區(qū)別在于git提供的rm既會刪除工作區(qū)中該文件,又會刪除暫存區(qū)中該文件,使用了git rm后,我們直接提交一次即可

如下示例:

http://aloenet.com.cn/news/41812.html

相關(guān)文章:

  • 中華南大街網(wǎng)站建設(shè)佛山百度網(wǎng)站排名優(yōu)化
  • 深圳網(wǎng)站建設(shè)公司哪家專業(yè)今日國內(nèi)新聞10則
  • 如何制作網(wǎng)站平臺北京aso優(yōu)化
  • 銷項(xiàng)稅和進(jìn)項(xiàng)導(dǎo)入是在國稅網(wǎng)站做嗎制作網(wǎng)站費(fèi)用
  • 自己的電腦做服務(wù)器建立網(wǎng)站的方法百度競價搜索
  • 做能支付的網(wǎng)站貴嗎國內(nèi)免費(fèi)域名
  • 小說網(wǎng)站建設(shè)的支柱app推廣活動策劃方案
  • 做門的網(wǎng)站1688的網(wǎng)站特色
  • python 做的網(wǎng)站有哪些如何在網(wǎng)絡(luò)上推廣產(chǎn)品
  • 顏色搭配的網(wǎng)站班級優(yōu)化大師官網(wǎng)下載
  • 什么網(wǎng)站可以做醫(yī)療設(shè)備的磁力鏈
  • 做網(wǎng)站 要域名 主機(jī) 還有啥東莞網(wǎng)站seo公司
  • 建設(shè)銀行網(wǎng)站機(jī)構(gòu)長沙seo推廣外包
  • 金華網(wǎng)站建設(shè)外包百度定位店鋪位置怎么設(shè)置
  • 臺式機(jī)做網(wǎng)站服務(wù)器百度的首頁
  • 東莞市住房建設(shè)局網(wǎng)站成都百度推廣開戶公司
  • 鄭州網(wǎng)站建設(shè)漢獅百度下載安裝到桌面
  • 天津河?xùn)|區(qū)網(wǎng)站建設(shè)持續(xù)優(yōu)化完善防控措施
  • 今日河南新聞聯(lián)播上海整站seo
  • 專門做簡歷的網(wǎng)站有哪些長沙關(guān)鍵詞優(yōu)化方法
  • 檢察院加強(qiáng)網(wǎng)站建設(shè)長沙優(yōu)化網(wǎng)站推廣
  • 在線做heatmap的網(wǎng)站谷歌推廣怎么操作
  • 深夜免費(fèi)軟件app下載seo營銷的概念
  • 一般網(wǎng)站用什么軟件做怎么注冊一個自己的網(wǎng)站
  • 軟件公司網(wǎng)站系統(tǒng)集成建設(shè)營銷推廣的特點(diǎn)
  • wordpress寄出郵箱地址小學(xué)生班級優(yōu)化大師
  • 外貿(mào)平臺免費(fèi)網(wǎng)站網(wǎng)站優(yōu)化推廣平臺
  • 學(xué)做網(wǎng)站設(shè)計(jì)需要多少錢網(wǎng)頁制作教程步驟
  • 網(wǎng)站建設(shè)整個過程個人介紹網(wǎng)頁制作
  • 做外貿(mào)在哪個網(wǎng)站北京百度推廣電話號碼