1.初始Git
1.1創(chuàng)建Git倉(cāng)庫(kù)
要提前說(shuō)的是,倉(cāng)庫(kù)是進(jìn)?版本控制的?個(gè)?件?錄。我們要想對(duì)?件進(jìn)?版本控制,就必須先創(chuàng)建?個(gè)倉(cāng)庫(kù)出來(lái)。創(chuàng)建?個(gè)Git本地倉(cāng)庫(kù)對(duì)應(yīng)的命令為 git init ,注意命令要在?件?錄下執(zhí)?,例如:
剛創(chuàng)建的git倉(cāng)庫(kù)會(huì)有一個(gè)隱藏文件? .git這個(gè)文件不能修改 ,git來(lái)跟蹤管理倉(cāng)庫(kù)的,不要?動(dòng)
修改這個(gè)?錄??的?件,不然改亂了,就把git倉(cāng)庫(kù)給破壞了.如果有興趣,可以進(jìn)入.git文件中查看。
創(chuàng)建完之后需要配置git ,設(shè)置用戶名和e-mail地址,這是非常重要的。配置指令如下:
git config [--global] user.name "Your Name"
git config [--global] user.email "email@example.com"
# 把 Your Name 改成你的昵稱
# 把 email@example.com 改成郵箱的格式,只要格式正確即可
其中 --global 是?個(gè)可選項(xiàng)。如果使?了該選項(xiàng),表?這臺(tái)機(jī)器上所有的Git倉(cāng)庫(kù)都會(huì)使?這個(gè)
配置。如果你希望在不同倉(cāng)庫(kù)中使?不同的 name 或 e-mail ,可以不要 --global 選項(xiàng),但要
注意的是,執(zhí)?命令時(shí)必須要在倉(cāng)庫(kù)?。
查看配置命令如下:git config -l
刪除對(duì)應(yīng)的配置命令為: git config [--global] --unset user.name #刪除用戶名
????????????????????????????????????? git config [--global] --unset user.email #刪除e-mail地址
1.2 使用git
認(rèn)識(shí)?作區(qū)、暫存區(qū)、版本庫(kù)
? ?作區(qū):是在電腦上你要寫(xiě)代碼或?件的?錄。
? 暫存區(qū):英?叫stage或index。?般存放在 .git ?錄下的index?件(.git/index)中,我們
把暫存區(qū)有時(shí)也叫作索引(index)。
? 版本庫(kù):?名倉(cāng)庫(kù),英?名 repository 。?作區(qū)有?個(gè)隱藏?錄 .git ,它不算?作區(qū),?
是Git的版本庫(kù)。這個(gè)版本庫(kù)??的所有?件都可以被Git管理起來(lái),每個(gè)?件的修改、刪除,Git都能跟蹤,以便任何時(shí)刻都可以追蹤歷史,或者在將來(lái)某個(gè)時(shí)刻可以“還原”。
下面這個(gè)圖展示了三個(gè)區(qū)之間的關(guān)系:
- 圖中左側(cè)為?作區(qū),右側(cè)為版本庫(kù)。Git的版本庫(kù)?存了很多東西,其中最重要的就是暫存區(qū)。
- 在創(chuàng)建Git版本庫(kù)時(shí),Git會(huì)為我們?動(dòng)創(chuàng)建?個(gè)唯?的master分?,以及指向master的?個(gè)指針叫HEAD。(分?和HEAD的概念后?再說(shuō))。
- 當(dāng)對(duì)?作區(qū)修改(或新增)的?件執(zhí)? git add 命令時(shí),暫存區(qū)?錄樹(shù)的?件索引會(huì)被更新。
- ?當(dāng)執(zhí)?提交操作 git commit 時(shí),master分?會(huì)做相應(yīng)的更新,可以簡(jiǎn)單理解為暫存區(qū)的?錄樹(shù)才會(huì)被真正寫(xiě)到版本庫(kù)中。
- 由上述描述我們便能得知:通過(guò)新建或粘貼進(jìn)?錄的?件,并不能稱之為向倉(cāng)庫(kù)中新增?件,?只是在?作區(qū)新增了?件。必須要通過(guò)使? git add 和 git commit 命令才能將?件添加到倉(cāng)庫(kù)中進(jìn)?管理!?。?/li>
添加文件:git add?? file #可以添加多個(gè)文件
?????????????????? git add .????? #添加當(dāng)前?錄下的所有?件改動(dòng)到暫存區(qū)
使? git commit 命令將暫存區(qū)內(nèi)容添加到本地倉(cāng)庫(kù)中:
git commit -m "message" ? # 提交暫存區(qū)全部?jī)?nèi)容到本地倉(cāng)庫(kù)中
?git commit [file1] [file2] ... -m "message"? #提交暫存區(qū)的指定?件到倉(cāng)庫(kù)區(qū)
注意 git commit 后?的 -m 選項(xiàng),要跟上描述本次提交的message,由????完成,這部分內(nèi)容絕對(duì)不能省略,并要好好描述,是?來(lái)記錄你的提交細(xì)節(jié),是給我們?看的。
查看歷史提交記錄: git log
如果嫌棄信息麻煩,可以使用 git log --pretty=oneline 用來(lái)簡(jiǎn)化輸出信息。
比如:
需要說(shuō)明的是,我們看到的??串類似 1490fde2f.....a7c1數(shù)字 的是每次提交的 commit id (版本號(hào)),Git的 commit id 不是1,2,3……遞增的數(shù)字,?是?個(gè)SHA1計(jì)算出來(lái)的?個(gè)?常?的數(shù)字,??六進(jìn)制表?(你看到的 commit id 和我的肯定不?樣,以你??的為準(zhǔn))
查看暫存區(qū)的內(nèi)容:git status? #查看文件是否發(fā)生更新的·
版本回退:git reset? [--sort] #將版本庫(kù)中的內(nèi)容回退
?????????????????? git reset? [--mixed] #將版本庫(kù)和暫存區(qū)中的內(nèi)容回退,默認(rèn)選項(xiàng)、
??????????????????? git reset [--hard]#將版本庫(kù),暫存區(qū),工作區(qū)中所有的內(nèi)容都回退。慎用。
刪除文件: rm -rf [file]#只能刪除工作區(qū)中的內(nèi)容,不能刪除其他的,
?rm 命令只是刪除工作區(qū)的文件,并沒(méi)有刪除版本庫(kù)的文件,想要?jiǎng)h除版本庫(kù)文件還要執(zhí)行下面的命令:
$ git add [file]
$ git commit -m "delete test"徹底刪除文件。
分支管理:
分?就是科幻電影??的平?宇宙,當(dāng)你正在電腦前努?學(xué)習(xí)C++的時(shí)候,另?個(gè)你正在另?個(gè)平?宇宙?努?學(xué)習(xí)JAVA。
Git?持我們查看或創(chuàng)建其他分?,在這?我們來(lái)創(chuàng)建第?個(gè)??的分? dev ,對(duì)應(yīng)的命令為:
git branch? +分支名
當(dāng)我們創(chuàng)建新的分?后,Git新建了?個(gè)指針叫dev, * 表?當(dāng)前 HEAD 指向的分?是 master 分
?。另外,可以通過(guò)?錄結(jié)構(gòu)發(fā)現(xiàn),新的 dev 分?。發(fā)現(xiàn)?前dev和master指向同?個(gè)修改。并且也可以驗(yàn)證下HEAD?前是指向 master 的。
切換分?:git checkout
2.遠(yuǎn)程管理
我們?前所說(shuō)的所有內(nèi)容(?作區(qū),暫存區(qū),版本庫(kù)等等),都是在本地!也就是在你的筆記本或者計(jì)算機(jī)上。?我們的Git其實(shí)是分布式版本控制系統(tǒng)!什么意思呢?
可以簡(jiǎn)單理解為,我們每個(gè)?的電腦上都是?個(gè)完整的版本庫(kù),這樣你?作的時(shí)候,就不需要聯(lián)?
了,因?yàn)榘姹編?kù)就在你??的電腦上。既然每個(gè)?電腦上都有?個(gè)完整的版本庫(kù),那多個(gè)?如何協(xié)作呢???說(shuō)你在??電腦上改了?件A,你的同事也在他的電腦上改了?件A,這時(shí),你們倆之間只需把各?的修改推送給對(duì)?,就可以互相看到對(duì)?的修改了。分布式版本控制系統(tǒng)的安全性要?很多,因?yàn)槊總€(gè)?電腦?都有完整的版本庫(kù),某?個(gè)?的電腦壞掉了不要緊,隨便從其他?那?復(fù)制?個(gè)就可以了。在實(shí)際使?分布式版本控制系統(tǒng)的時(shí)候,其實(shí)很少在兩?之間的電腦上推送版本庫(kù)的修改,因?yàn)榭赡苣銈儌z不在?個(gè)局域?內(nèi),兩臺(tái)電腦互相訪問(wèn)不了。也可能今天你的同事病了,他的電腦壓根沒(méi)有開(kāi)機(jī)。因此,分布式版本控制系統(tǒng)通常也有?臺(tái)充當(dāng)“中央服務(wù)器”的電腦,但這個(gè)服務(wù)器的作?僅僅是?來(lái)?便“交換”?家的修改,沒(méi)有它?家也?樣?活,只是交換修改不?便?已。有了這個(gè)“中央服務(wù)器”的電腦,這樣就不怕本地出現(xiàn)什么故障了(?如運(yùn)?差,硬盤(pán)壞了,上?的所有東西全部丟失,包括git的所有內(nèi)容)。
推送到遠(yuǎn)程倉(cāng)庫(kù)指令:git push
從遠(yuǎn)程倉(cāng)庫(kù)拉取:? git pull文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-694018.html
克隆遠(yuǎn)程倉(cāng)庫(kù): git? clone文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-694018.html
到了這里,關(guān)于git企業(yè)級(jí)使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!