欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:初識git · 基本操作

柚子快報激活碼778899分享:初識git · 基本操作

http://yzkb.51969.com/

目錄

前言:

基本操作

檢查是否存在git

初始化倉庫

認(rèn)識三個區(qū)域

添加文件

查看.git文件

修改文件

版本回退

撤銷操作

刪除文件

我的博客即將同步至騰訊云開發(fā)者社區(qū),邀請大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=2n55ocfzqhogk

前言:

Git 是一個開源的分布式版本控制系統(tǒng),最初由林納斯·托瓦茲(Linus Torvalds)于2005年開發(fā),目的是為了更好地管理Linux內(nèi)核的開發(fā)過程。與傳統(tǒng)的集中式版本控制系統(tǒng)(如SVN)不同,Git允許開發(fā)者在本地進(jìn)行完整的版本控制操作,包括提交、分支和合并,而無需依賴網(wǎng)絡(luò)連接到中央服務(wù)器。

Git的核心概念包括倉庫(Repository)、工作目錄(Working Directory)、暫存區(qū)(Staging Area)和提交(Commit)。開發(fā)者在本地倉庫中工作,修改文件后可以將這些變更添加到暫存區(qū),然后通過提交操作將這些變更記錄到倉庫的歷史記錄中。

Git還支持分支和合并操作,使開發(fā)者能夠在不影響主分支穩(wěn)定性的情況下進(jìn)行新功能開發(fā)或?qū)嶒炐孕薷?。分支操作是輕量級的,幾乎可以瞬間創(chuàng)建和切換,這極大地提高了開發(fā)效率和靈活性。

此外,Git還具有強(qiáng)大的網(wǎng)絡(luò)功能,支持通過HTTP、SSH等協(xié)議進(jìn)行倉庫的克隆、推送和拉取操作,使得多個開發(fā)者可以協(xié)同工作,共享代碼變更。

總之,Git以其分布式的設(shè)計、高效的分支和合并操作以及強(qiáng)大的網(wǎng)絡(luò)功能,成為了現(xiàn)代軟件開發(fā)中不可或缺的版本控制工具。

基本操作

由前言的介紹,我們知道git強(qiáng)大的地方來源于版本控制,那么除了版本控制,我們要學(xué)習(xí)的基本操作有:

認(rèn)識三個區(qū)域->添加文件->修改文件->版本回退->撤銷修改的三種情況->刪除文件。

這是本文的目標(biāo)。

檢查是否存在git

開始之前,我們應(yīng)該先檢查自己的機(jī)器里面是否存在git這個工具:

命令:git --version,可以查看git的版本,

ubuntu的系統(tǒng)下,刪除git的命令是:sudo apt remove git -y,此時查看:

那么ubuntu重新安裝git的命令為:sudo apt install git。

初始化倉庫

那么有了git這個工具,我們應(yīng)該新建一個倉庫,并且要對倉庫初始化,在圖形化界面中,我們新建倉庫的時候往往也是需要初始化的:

使用的命令是git init,此時初始化了倉庫之后,在當(dāng)前目錄下就會創(chuàng)建本地倉庫,標(biāo)志是.git。

此時.git創(chuàng)建好了之后,比較重要的是我們最好配置名字,以及郵箱等:

通過命令git config user.name 等,初始化自己的信息。

那么我們?nèi)绾慰磳?yīng)的配置信息呢?輸入命令:git config -l即可:

此時對應(yīng)的配置信息就打印出來了。

那么我們既然已經(jīng)創(chuàng)建了.git,我們不妨使用tree看一下這究竟是個什么玩意兒:

這就是對應(yīng)git的樹狀圖,當(dāng)然,里面有很多東西我們目前都不知道,不用急,咱也就先看看而已。

初始化配置的時候,我們還可以使用--global參數(shù),表示全局的,也就是這臺機(jī)器上的所有倉庫都可以使用這個配置:

那么為了測試,我們再創(chuàng)建一個倉庫:

驗證成功。

那么刪除對應(yīng)的配置也很簡單,使用unset即可:

但是不能一次性刪除多個,只能一個一個刪除:

倉庫的初始化配置就到這里。

認(rèn)識三個區(qū)域

git中的三個區(qū)域:

在git中,這三個區(qū)域,分別是工作區(qū),暫存區(qū),版本庫,三個區(qū)域的取名還是比較生動形象的。

工作區(qū),也就是平時我們存儲代碼的地方,暫存區(qū),也就是經(jīng)過一次add操作之后,代碼的臨時改動被存儲到了暫存區(qū),版本庫,代碼的更改都會放在這里面,并且是永久存儲的。

其中,工作區(qū)到暫存區(qū),需要Add,暫存區(qū)到版本庫,需要commit,但是我們平常使用圖形化界面的時候,上傳到遠(yuǎn)端倉庫還需要一個操作是push,目前我們學(xué)習(xí)的操作都沒有涉及push,都是在add和commit。

對于暫存區(qū),也有一種說法叫做索引,并且在暫存區(qū)和版本庫里面還有一種區(qū)域,叫做objects,沒錯,就是這個:

objects也就是對象的意思,這實際上是個對象庫,修改的工作區(qū)的內(nèi)容會寫入其中的git對象.

添加文件

我們添加文件有兩種方式,一種是git add 修改的文件名 ,一種是git add . ,這個.就是當(dāng)前目錄的所有意思,也就是當(dāng)前目錄的所有修改都要加上,add之后,通常伴有g(shù)it commit ,但是commit通常需要選項-m,-m的意思是提交日志,也就是:

這里需要注意的是,-m之后的描述是比較重要的,比如boss讓你寫了500個版本,如果每次commit的日志都是1,那么是很難進(jìn)行版本回退的,因為都是1,沒有描述具體添加還是刪除了哪些功能,版本控制就變得麻煩起來了。

commit之后,有對應(yīng)的介紹,1file changed ,一個文件改動了,0 insertions,代表沒有行數(shù)增加,0 deletions代表沒有行數(shù)減少。

我們也可以一次性,多添加多個文件:

這里需要再介紹一個命令,叫做git log,一般的軟件都是有日志的,可以理解為日記的意思,它會記錄該軟件發(fā)生的所有事:

其中HEAD -> master是什么我們暫時不用管,前面的很大的16進(jìn)制的數(shù)字是根據(jù)某種規(guī)則生成的,我們知道即可。

后面有對應(yīng)的Author,Email,以及對應(yīng)的日期,最后的就是提交的描述的。如果我們嫌打印出來的東西太多了,我們可以輸入git log --pretty=oneline:

也就是將每次的提及以一行的方式打印。

那么在add commit操作里面我們看到了極其龐大的式子,還有HEAD -> master,我們可以通過查看.git文件來了解它們。

查看.git文件

根據(jù)最開始的git圖:

我們現(xiàn)在不妨對比一下已經(jīng)commit兩次之后的git:

為什么暫存區(qū)還有一個名字叫做索引,就是因為我們commit之后,git之后新增了一個index,也就是暫存區(qū)的索引。

關(guān)于HEAD指針的問題,我們可以打印HEAD出來看看:

可以發(fā)現(xiàn)HEAD指針指向的就是master,那么master里面又有什么呢?再看看:

是一串很大的16進(jìn)制的數(shù)字,那么這串?dāng)?shù)字又是啥?我們可以使用指令來查看:

指令git cat-file -p [數(shù)字]:

出現(xiàn)了我們熟悉的信息,第一個是tree,不管先,parent是我們上次提交對應(yīng)的commit id,author等就不用介紹了,那么tree對應(yīng)的是什么呢?我們使用指令再看看:

這些就是對應(yīng)提交過的文件了,那么里面的數(shù)字又是什么意思呢?實際上是我們add之后,在文件里面進(jìn)行了修改的內(nèi)容,因為博主add的時候沒有加?xùn)|西,所以各位同學(xué)可以自行演示哦。

在git里面,對象庫里面存在的13的是對應(yīng)的對象。

修改文件

這里的修改文件并不是我們在git里面修改文件,我們查看修改文件之后git對應(yīng)的狀態(tài),我們現(xiàn)在在file1新增內(nèi)容:

此時使用指令git status:

此時file1文件變紅,圖形化界面也會有一個紅色提示符,此時,nothing added to commit ...也就是說暫存區(qū)沒有內(nèi)容需要commit的,那么此時我們使用指令git diff:

其中index索引后面的我們不管,a/file1表示改動前的fie1,b就是改動后的。

---也是改動前,那么-0,0, +1是代表的行數(shù)變化,后面打印出來了對應(yīng)的行增加了什么。

0,+1代表從改動后的0行開始新增1行。

這是修改文件。

這就是看的在暫存區(qū)和工作區(qū)之間的內(nèi)容區(qū)別,當(dāng)然也有暫存區(qū)和版本庫的,各位同學(xué)可以自己試試哦。

版本回退

版本回退作為git最重要的一個功能,現(xiàn)在就揭開對應(yīng)的熒幕,那么我們新造一個場景,重新提交一下文件,從file1到 file5 ,修改file1為Hello git ,到加上Hello world:

為了進(jìn)行版本回退,使用的函數(shù)是reset,對應(yīng)的選項有 --soft?--mixed --hard,默認(rèn)使用指令reset的時候選項是mixed,從soft到mixed到hard的,回退的情況是由輕到重的:

使用soft只會修改版本庫的內(nèi)容,mixed會修改暫存區(qū)和版本庫的內(nèi)容,hard會修改三個區(qū)的內(nèi)容,所以hard一定是要慎用的。因為可能別人正在工作區(qū)寫代碼呢,你一個hard,框的一下給人代碼全部干沒有了,這就是一件很悲催的事兒。

那么我們現(xiàn)在演示一下hard,其他兩個自然也就會了:

表示現(xiàn)在在當(dāng)前版本。

我們也可以直接用HEAD指針,HEAD^表示上個版本,^^代表上上個,也可以使用~ + 數(shù)字表示,~ + 1代表上一個版本:

當(dāng)我們成功回退到了上個版本,我們看看修改的file1的內(nèi)容是怎么樣的:

此時只有Hello git了,那么我們可以吃后悔藥不呢?可以的,我們?nèi)绻到y(tǒng)還沒有退出來,可以看到對應(yīng)的commit id,就可以:

此時:

那么如果我們的系統(tǒng)已經(jīng)退出來了,看不到對應(yīng)的id怎么辦?我們可以:

此時有個縮短的commit id,也可以直接用的,我們可以利用該commit id直接回退,那么為什么git的版本回退那么快呢?

這是因為:

每次commit之后,返回的commit id實際上是不同的git對象,master指針只需要改變一下指向即可。

撤銷操作

撤銷操作分為三種,新增的代碼還沒有add,新增的代碼已經(jīng)add了但是沒有commit,新增的代碼不僅add了還commit了,對應(yīng)只有這三種情況。

第一種情況:

如果我們還沒有add,并且新增的代碼并不是很多的情況下,我們不妨手動刪除,但是在企業(yè)中,代碼量都是比較多的,我們不能保證我們可以手動刪除完全正確,我們希望代碼回到最近一次add的時候,所以我們可以使用指令git checkout -- [filename]:

第二種情況:

已經(jīng)add了,但是還沒有commit,那么我們需要修改的就是暫存區(qū),這就有意思了,我們可以直接使用版本回退的指令,mixed,修改暫存區(qū)的內(nèi)容,但是不修改工作區(qū)的內(nèi)容,此時就變成了如何修改工作區(qū)的內(nèi)容,這不就回到了情況一了嗎?

第三種情況:

那就更簡單了,直接hard指令即可,只能說慶幸沒有push到遠(yuǎn)程倉庫吧,push了可就真的麻煩了,這里就相當(dāng)于版本回退的操作,就不做實例了。

刪除文件

刪除文件就簡單多了,我們對于普通的文件可以直接rm -rf,但是git里面,我們可以直接git rm filename:

這樣可以在工作區(qū)刪除對應(yīng)的文件。如果直接rm,代表的只是本地刪除了而已,倉庫沒有刪除,

此時git的狀態(tài)也會發(fā)生變化。

那么倉庫刪除了之后,commit一下:

此時,就干凈了許多。?

感謝閱讀!

柚子快報激活碼778899分享:初識git · 基本操作

http://yzkb.51969.com/

文章鏈接

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19557861.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄