Git使用手册--超级详细,自己都看哭了
Git
一.git簡(jiǎn)介
Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)(沒有之一)。
關(guān)于版本控制系統(tǒng):
版本控制是一種記錄一個(gè)或若干文件內(nèi)容變化,以便將來查閱特定版本修訂情況的系統(tǒng).有了它你就可以將選定的文件回溯到之前的狀態(tài),甚至將整個(gè)項(xiàng)目都回退到過去某個(gè)時(shí)間點(diǎn)的狀態(tài),你可以比較文件的變化細(xì)節(jié),查出最后是誰修改了哪個(gè)地方,從而找出導(dǎo)致怪異問題出現(xiàn)的原因,又是誰在何時(shí)報(bào)告了某個(gè)功能缺陷等等
二.安裝
在使用Git前我們需要先安裝 Git。Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平臺(tái)上運(yùn)行。
Git 各平臺(tái)安裝包下載地址為:http://git-scm.com/downloads
Linux 平臺(tái)上安裝
Git 的工作需要調(diào)用 curl,zlib,openssl,expat,libiconv 等庫的代碼,所以需要先安裝這些依賴工具。
在有 yum 的系統(tǒng)上(比如 Fedora)或者有 apt-get 的系統(tǒng)上(比如 Debian 體系),可以用下面的命令安裝:
各 Linux 系統(tǒng)可以使用其安裝包管理工具(apt-get、yum 等)進(jìn)行安裝:
Debian/Ubuntu
Debian/Ubuntu Git 安裝命令為:
$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \libz-dev libssl-dev$ apt-get install git$ git --version git version 1.8.1.2Centos/RedHat
如果你使用的系統(tǒng)是 Centos/RedHat 安裝命令為:
$ yum install curl-devel expat-devel gettext-devel \openssl-devel zlib-devel$ yum -y install git-core$ git --version git version 1.7.1源碼安裝
我們也可以在官網(wǎng)下載源碼包來安裝,最新源碼包下載地址:https://git-scm.com/download
安裝指定系統(tǒng)的依賴包:
# Centos/RedHat $ yum install curl-devel expat-devel gettext-devel \openssl-devel zlib-devel# Debian/Ubuntu $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \libz-dev libssl-dev解壓安裝下載的源碼包:
$ tar -zxf git-1.7.2.2.tar.gz $ cd git-1.7.2.2 $ make prefix=/usr/local all $ sudo make prefix=/usr/local installWindows 平臺(tái)上安裝
在 Windows 平臺(tái)上安裝 Git 同樣輕松,有個(gè)叫做 msysGit 的項(xiàng)目提供了安裝包,可以到 GitHub 的頁面上下載 exe 安裝文件并運(yùn)行:
安裝包下載地址:https://gitforwindows.org/
官網(wǎng)慢,可以用國內(nèi)的鏡像:https://npm.taobao.org/mirrors/git-for-windows/。
三.創(chuàng)建版本庫
我們先來理解下 Git 工作區(qū)、暫存區(qū)和版本庫概念:
- **工作區(qū):**就是你在電腦里能看到的目錄。
- **暫存區(qū):**英文叫 stage 或 index。一般存放在 .git 目錄下的 index 文件(.git/index)中,所以我們把暫存區(qū)有時(shí)也叫作索引(index)。
- 版本庫:工作區(qū)有一個(gè)隱藏目錄 .git,這個(gè)不算工作區(qū),而是 Git 的版本庫。版本庫又名倉庫,英文名repository,你可以簡(jiǎn)單理解成一個(gè)目錄,這個(gè)目錄里面的所有文件都可以被Git管理起來,每個(gè)文件的修改、刪除,Git都能跟蹤,以便任何時(shí)刻都可以追蹤歷史,或者在將來某個(gè)時(shí)刻可以“還原”。
1.創(chuàng)建一個(gè)目錄作或者選擇一個(gè)有內(nèi)容的目錄為工作區(qū)
2.使用當(dāng)前目錄作為Git倉庫,我們只需使它初始化
git initGit 使用 git init 命令來初始化一個(gè) Git 倉庫,Git 的很多命令都需要在 Git 的倉庫中運(yùn)行,所以 git init 是使用 Git 的第一個(gè)命令。
在執(zhí)行完成 git init 命令后,Git 倉庫會(huì)生成一個(gè) .git 目錄,該目錄包含了資源的所有元數(shù)據(jù),其他的項(xiàng)目目錄保持不變。
補(bǔ)充:
使用指定目錄作為Git倉庫
git init newtest初始化后,會(huì)在 newtest 目錄下會(huì)出現(xiàn)一個(gè)名為 .git 的目錄,所有 Git 需要的數(shù)據(jù)和資源都存放在這個(gè)目錄中。
3.把文件添加到版本庫
這里我在工作區(qū)里添加一個(gè)文本文件作為演示:
一個(gè)文件放到Git倉庫只要三步( 把大象當(dāng)冰箱 ):
(1)把文件放到工作區(qū)或者新建文件,保證文件是在工作區(qū)目錄下或子目錄下
(2)用git add命令把文件添加到暫存區(qū) : git add read.txt
(3)用git commit命令用把文件提交到倉庫
git commit -m "第一次提交" # -m后面輸入的是本次提交的說明(message)提交后發(fā)現(xiàn)和git add一樣沒有任何反應(yīng),在linux中沒有反應(yīng)是最好的反應(yīng)
四.版本回退
git log命令:查看歷史提交記錄
假如說我修改read.txt文件,添加一行文字測(cè)試修改
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-TiaPz2Ln-1632487562316)(https://i.loli.net/2021/09/24/huG1l6posUjIrdc.png)]
使用git log命令查看提交記錄
如果提交次數(shù)很多,可以使用git log --pretty=oneline查看提交記錄
說明:
提交記錄里面那一大串字符``(20b123…)是commit id`(版本號(hào))
版本回退:
使用命令git reset回退版本:
說明:
在Git中,用HEAD表示當(dāng)前版本,也就是最新的提交20b123....,上一個(gè)版本就是HEAD^,上上一個(gè)版本就是HEAD^^,當(dāng)然往上100個(gè)版本寫100個(gè)^比較容易數(shù)不過來,所以寫成HEAD~100
git reset --hard HEAD^打開之前添加的文字修改,發(fā)現(xiàn)回退到第一次提交的版本
用命令git log查看版本歷史,我們?nèi)绻朐倩氐阶钚掳姹?添加文字修改過的那個(gè)版本)怎么辦:
git reset --hard 20b123id沒必要寫全,前幾位就可以了,Git會(huì)自動(dòng)去找
問題來了,假如說,我關(guān)機(jī)了,或者關(guān)掉git了,ID不知道怎么辦.在git中,總有后悔藥可以吃:
使用命令git reflog查看命令歷史
知道了id不是想怎么玩就怎么玩!
五.查看倉庫當(dāng)前的狀態(tài)
命令git status查看倉庫當(dāng)前的狀態(tài),顯示有變更的文件
我在工作區(qū)中再添加一個(gè)文件
使用命令:
git statusme.txt文件沒有被添加,所以它的狀態(tài)是Untracked。
那現(xiàn)在來添加一下,再查看:
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-PnMzSfwj-1632487562326)(https://i.loli.net/2021/09/24/XoifkPWjz6OZ72A.png)]
提交后,如果你又沒有對(duì)工作區(qū)做任何修改,那么工作區(qū)就是“干凈”的(working tree clean)
六.添加遠(yuǎn)程倉庫–Github
首先你需要你個(gè)Github賬戶,再者你要?jiǎng)?chuàng)建一個(gè)倉庫,注冊(cè)賬戶就不說了,閉上眼注冊(cè)就行了,我們來說一下創(chuàng)建倉庫吧
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-pXN7QFsB-1632487562327)(https://i.loli.net/2021/09/24/YGTurLsO3pfVRK4.png)]
接著確定就行了…
創(chuàng)建好的效果如圖:
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-6VjAiNlD-1632487562328)(https://i.loli.net/2021/09/24/93KwCvolH4qemRu.png)]
接著,我們從這里找到github倉庫的地址
執(zhí)行命令:
git remote add origin https://github.com/code-anime/test.git添加后,遠(yuǎn)程庫的名字就是origin,這是Git默認(rèn)的叫法,也可以改成別的
下一步,就可以把本地庫的所有內(nèi)容推送到遠(yuǎn)程庫上:
git push -u origin master執(zhí)行完畢后我們可以看到github上遠(yuǎn)程倉庫內(nèi)容和本地的內(nèi)容一樣.
注意:
執(zhí)行途中可能遇到的問題:
(1)SSH錯(cuò)誤
由于你的本地 Git 倉庫和 GitHub 倉庫之間的傳輸是通過SSH加密的,所以我們需要配置驗(yàn)證信息:
使用以下命令生成 SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"后面的 your_email@youremail.com 改為你在 Github 上注冊(cè)的郵箱,之后會(huì)要求確認(rèn)路徑和輸入密碼,我們這使用默認(rèn)的一路回車就行。
成功的話會(huì)在 ~/ 下生成 .ssh 文件夾,進(jìn)去,打開 id_rsa.pub,復(fù)制里面的 key。
$ ssh-keygen -t rsa -C "2272166487@qq.com" Generating public/private rsa key pair. Enter file in which to save the key (/Users/tianqixin/.ssh/id_rsa): Enter passphrase (empty for no passphrase): # 直接回車 Enter same passphrase again: # 直接回車 Your identification has been saved in /Users/tianqixin/.ssh/id_rsa. Your public key has been saved in /Users/tianqixin/.ssh/id_rsa.pub. The key fingerprint is: SHA256:MDKVidPTDXIQoJwoqUmI4LBAsg5XByBlrOEzkxrwARI 429240967@qq.com The key's randomart image is: +---[RSA 3072]----+ |E*+.+=**oo | |%Oo+oo=o. . | |%**.o.o. | |OO. o o | |+o+ S | |. | | | | | | | +----[SHA256]-----+回到 github 上,進(jìn)入 Account => Settings(賬戶配置)。
左邊選擇 SSH and GPG keys,然后點(diǎn)擊 New SSH key 按鈕,title 設(shè)置標(biāo)題,可以隨便填,粘貼在你電腦上生成的 key。
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-g8jbPVdT-1632487562333)(https://i.loli.net/2021/09/24/QGJrjOvehsnxfXo.jpg)]
添加成功后界面如下所示
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-HhMMUmuV-1632487562335)(https://i.loli.net/2021/09/24/MyavhetVYEXijbP.jpg)]
為了驗(yàn)證是否成功,輸入以下命令:
$ ssh -T git@github.com The authenticity of host 'github.com (52.74.223.119)' can't be established. RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes # 輸入 yes Warning: Permanently added 'github.com,52.74.223.119' (RSA) to the list of known hosts. Hi tianqixin! You've successfully authenticated, but GitHub does not provide shell access. # 成功信息以下命令說明我們已成功連上 Github。
(2)下面這個(gè)錯(cuò)誤
warning: redirecting to https://github.com/code-anime/test.git/ To http://github.com/code-anime/test.git! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'http://github.com/code-anime/test.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.解決:
執(zhí)行命令:
git pull --rebase origin master[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-cqOxvkkZ-1632487562336)(https://i.loli.net/2021/09/24/LknDerGX4qdI2ap.png)]
接著再試一下:
git push -u origin master七.移除遠(yuǎn)程倉庫
如果添加的時(shí)候地址寫錯(cuò)了,或者就是想刪除遠(yuǎn)程庫,可以用git remote rm <name>
建議執(zhí)行該命令之前執(zhí)行g(shù)it remote -v查看遠(yuǎn)程庫信息
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-hjpcpxS8-1632487562338)(C:/Users/22721/AppData/Roaming/Typora/typora-user-images/image-20210924154708648.png)]
然后根據(jù)名字刪除,比如刪除origin
此處的“刪除”其實(shí)是解除了本地和遠(yuǎn)程的綁定關(guān)系,并不是物理上刪除了遠(yuǎn)程庫。遠(yuǎn)程庫本身并沒有任何改動(dòng)。要真正刪除遠(yuǎn)程庫,需要登錄到GitHub,在后臺(tái)頁面找到刪除按鈕再刪除。
查看.git目錄下的config文件,發(fā)現(xiàn)原來的這條沒有了:
[remote "origin"]url = https://github.com/code-anime/test.gitfetch = +refs/heads/*:refs/remotes/origin/*如果想重新建立與遠(yuǎn)程庫之間的連接:
git remote add origin git remote add origin https://github.com/code-anime/test.git git add . git commit -m "第三次提交" git push -u origin master八.從遠(yuǎn)程庫克隆
上面所講到的是先有本地庫,后有遠(yuǎn)程庫,如何關(guān)聯(lián)遠(yuǎn)程庫.
現(xiàn)在,我們來說先有遠(yuǎn)程庫,再有本地庫(從遠(yuǎn)程庫克隆),這里我把本地test工作區(qū)刪除,github上面的test倉庫也刪除了.從零開始演示.畢竟是test
接著就是創(chuàng)建github倉庫,這里不做贅述了.
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-0unGwbWx-1632487562343)(https://i.loli.net/2021/09/24/ylbKxJ2D7GuZsgH.png)]
我在桌面新建了一個(gè)文件夾repos,沒別的意思就是repository的簡(jiǎn)寫
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-9PcOyMDr-1632487562345)(https://i.loli.net/2021/09/24/nR69k4NqUBSKLY8.png)]
然后打開文件夾 , 然后git bash here
執(zhí)行命令:
git clone git@github.com:code-anime/test.git上面git clone后跟的是倉庫地址.
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-Z6fhXXlZ-1632487562346)(https://i.loli.net/2021/09/24/tkf2KZvTiswxmJB.png)]
執(zhí)行命令后,會(huì)發(fā)現(xiàn)repos目錄里面多了一個(gè)test文件夾(就是克隆github上的test倉庫)
打開test文件夾后我們會(huì)發(fā)現(xiàn),和遠(yuǎn)程倉庫內(nèi)容是一樣的
注意:
GitHub給出的地址不止一個(gè),還可以用https://github.com/code-anime/test.git這樣的地址。實(shí)際上,Git支持多種協(xié)議,默認(rèn)的git://使用ssh,但也可以使用https等其他協(xié)議。
使用https除了速度慢以外,還有個(gè)最大的麻煩是每次推送都必須輸入口令,但是在某些只開放http端口的公司內(nèi)部就無法使用ssh協(xié)議而只能用https
九.分支管理
首先,列出分支:
git branch[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-aW1pUCbX-1632487562348)(https://i.loli.net/2021/09/24/lUL2XWNVJqO7Gju.png)]
意思就是,我們有一個(gè)叫做 master 的分支,并且該分支是當(dāng)前分支.當(dāng)你執(zhí)行 git init 的時(shí)候,默認(rèn)情況下 Git 就會(huì)為你創(chuàng)建 master 分支。
如果我們要手動(dòng)創(chuàng)建一個(gè)分支。執(zhí)行 git branch (branchname) 即可。
創(chuàng)建一個(gè)testing分支:
git branch testing現(xiàn)在我們可以看到,有了一個(gè)新分支 testing。
當(dāng)你以此方式在上次提交更新之后創(chuàng)建了新分支,如果后來又有更新提交, 然后又切換到了 testing 分支,Git 將還原你的工作目錄到你創(chuàng)建分支時(shí)候的樣子。
我們切換到testing分支進(jìn)行實(shí)驗(yàn):
git checkout testing[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-pYk3rs8J-1632487562350)(https://i.loli.net/2021/09/24/SRsQ38JOdnBPqjG.png)]
接下來我們將演示如何切換分支,我們用git checkout (branch) 切換到我們要修改的分支。
我們?cè)趖esting分支上正常提交,比如創(chuàng)建文件readme.txt,內(nèi)容寫上:
測(cè)試testing分支然后提交:
git add . git commit -m "添加文字測(cè)試testing分支"現(xiàn)在我們切換會(huì)master分支后,再查看readme.txt文件,文件不見了!
![外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-2bArBHeG-1632487562353)(https://i.loli.net/2021/09/24/tpIsqRHXUASBk6E.png)]
當(dāng)我們滿懷懷疑的時(shí)候我們切換回來testing分支,發(fā)現(xiàn)還在
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-hP1dK74J-1632487562353)(https://i.loli.net/2021/09/24/VaKfgYxIbQZwj8e.png)]
因?yàn)槟莻€(gè)提交是在testing分支上,而master分支此刻的提交點(diǎn)并沒有變:
現(xiàn)在,我們把testing分支的工作成果合并到master分支上:
git checkout master git merge testing[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-Pv7swisu-1632487562355)(https://i.loli.net/2021/09/24/IWJSRxPGCOpfqjE.png)]
合并完成后,就可以放心地刪除testing分支了:
git branch -d testing[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-SW7dZNS2-1632487562357)(https://i.loli.net/2021/09/24/XUvorehsZ6pkFQf.png)]
十.合并沖突
合并并不僅僅是簡(jiǎn)單的文件添加、移除的操作,Git 也會(huì)合并修改。
git branch * master cat readme.txt 測(cè)試testing分支現(xiàn)在我們只有一條主分支master且readme.txt文件中只有測(cè)試testing分支這一段文字.
首先,我們創(chuàng)建一個(gè)test1分支, 切換過去,我們將readme.txt文件添加123三個(gè)數(shù)字
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-h7oiMBbr-1632487562358)(https://i.loli.net/2021/09/24/WYxC2al8NEcJroe.png)]
將修改的內(nèi)容提交到 change_site 分支中。 現(xiàn)在,假如切換回 master 分支我們可以看內(nèi)容恢復(fù)到我們修改前的內(nèi)容,沒有123
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-UCpdY3T3-1632487562359)(https://i.loli.net/2021/09/24/EsmQdOgFalr3PIx.png)]
我們?cè)俅涡薷膔eadme.txt文件,添加數(shù)字456
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-JgC2TQHu-1632487562360)(https://i.loli.net/2021/09/24/tkKfzLduywbamsQ.png)]
現(xiàn)在這些改變已經(jīng)記錄到我的 master分支了。接下來我們將 test1分支合并過來。
git merge test1 Auto-merging readme.txt CONFLICT (content): Merge conflict in readme.txt Automatic merge failed; fix conflicts and then commit the result.打開文件,看見沖突內(nèi)容
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-V8r66FT9-1632487562361)(https://i.loli.net/2021/09/24/XQYtm57qlfAwaZM.png)]
我們將前一個(gè)分支合并到 master 分支,一個(gè)合并沖突就出現(xiàn)了,接下來我們需要手動(dòng)去修改它。
Git用<<<<<<<,=======,>>>>>>>標(biāo)記出不同分支的內(nèi)容,我們修改如下后保存:
123456再提交:
git add . git commit -m "分支沖突解決"[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-jzdhGvFv-1632487562362)(https://i.loli.net/2021/09/24/8ZKXpn4GNM925Ye.png)]
用帶參數(shù)的git log也可以看到分支的合并情況:
git log --graph --pretty=oneline --abbrev-commit最后,刪除分支:
git branch -d test1十一.標(biāo)簽管理
如果你達(dá)到一個(gè)重要的階段,并希望永遠(yuǎn)記住那個(gè)特別的提交快照,你可以使用 git tag 給它打上標(biāo)簽。
比如說,我們想為我們的 test項(xiàng)目發(fā)布一個(gè)1.0版本。 我們可以用 git tag V1.0命令給最新一次提交打上(HEAD)v1.0的標(biāo)簽。
首先,切換到需要打標(biāo)簽的分支上:
git tag v1.0當(dāng)你執(zhí)行 git tag -a 命令時(shí),Git 會(huì)打開你的編輯器,讓你寫一句標(biāo)簽注解,就像你給提交寫注解一樣。
可以用命令git tag查看所有標(biāo)簽:
git tag v1.0默認(rèn)標(biāo)簽是打在最新提交的commit上的。有時(shí)候,如果忘了打標(biāo)簽,比如,本該在昨天打的tag沒打怎么辦?
方法是找到歷史提交的commit id,然后打上就可以了:
git log --pretty=oneline --abbrev-commit[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-ZyfPJV7f-1632487562366)(https://i.loli.net/2021/09/24/LYaSbQeuRsirnCz.png)]
比方說要對(duì)添加456三個(gè)數(shù)組這次提交打標(biāo)簽,它對(duì)應(yīng)的commit id是fe6c8d7,敲入命令:
git tag v0.9 fe6c8d7再用命令git tag查看標(biāo)簽:
$ git tag v0.9 v1.0注意,標(biāo)簽不是按時(shí)間順序列出,而是按字母排序的。可以用git show <tagname>查看標(biāo)簽信息:
git show v0.9[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-crS9GPc5-1632487562367)(https://i.loli.net/2021/09/24/NCEZIDVSQynKYOJ.png)]
可以看到,v0.9確實(shí)打在add 添加456三個(gè)數(shù)字這次提交上。
還可以創(chuàng)建帶有說明的標(biāo)簽,用-a指定標(biāo)簽名,-m指定說明文字:
$ git tag -a v0.6 -m "version 0.6 released" 1094adb用命令git show <tagname>可以看到說明文字:
git show v0.6[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-Yr3vuQPK-1632487562368)(https://i.loli.net/2021/09/24/GyxXfu7t9iow5gT.png)]
用命令git tag -d <tagname>刪除標(biāo)簽
因?yàn)閯?chuàng)建的標(biāo)簽都只存儲(chǔ)在本地,不會(huì)自動(dòng)推送到遠(yuǎn)程。所以,打錯(cuò)的標(biāo)簽可以在本地安全刪除。
git tag -d v0.6如果要推送某個(gè)標(biāo)簽到遠(yuǎn)程,使用命令git push origin <tagname>:
git push origin v1.0[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-ZTfiDmiS-1632487562370)(https://i.loli.net/2021/09/24/mb6UOpI3hTjlGAM.png)]
或者,一次性推送全部尚未推送到遠(yuǎn)程的本地標(biāo)簽:
$ git push origin --tags如果標(biāo)簽已經(jīng)推送到遠(yuǎn)程,要?jiǎng)h除遠(yuǎn)程標(biāo)簽就麻煩一點(diǎn),先從本地刪除:
$ git tag -d v1.0然后,從遠(yuǎn)程刪除。刪除命令也是push,但是格式如下:
$ git push origin :refs/tags/v1.0要看看是否真的從遠(yuǎn)程庫刪除了標(biāo)簽,可以登陸GitHub查看。
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-0JlJFpQg-1632487562374)(https://i.loli.net/2021/09/24/MJ6AewT32zLoucq.png)]
十二.Gitee使用(hexo博客部署到gitee)
如果你-ssh密鑰刪除了或者不見了,新建一個(gè)ssh密鑰
需要重新上傳到github
打開你本地生成的ssh密鑰(默認(rèn)路徑是C:\user\你的電腦用戶名\ .ssh\id_rua_pub)
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-OWtmaGcT-1632487562375)(https://i.loli.net/2021/09/24/3Z4CmqWVQyRUXTb.png)]
放到github上:
第一次要密碼,輸入你創(chuàng)建ssh密鑰時(shí)候的密碼即可.
使用Gitee和使用GitHub類似,我們?cè)贕itee上注冊(cè)賬號(hào)并登錄后,需要先上傳自己的SSH公鑰。選擇右上角用戶頭像 -> 菜單“修改資料”,然后選擇“SSH公鑰”,填寫一個(gè)便于識(shí)別的標(biāo)題,然后把用戶主目錄下的.ssh/id_rsa.pub文件的內(nèi)容粘貼進(jìn)去
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-I6J6F2b8-1632487562380)(https://i.loli.net/2021/09/24/MSnVrQGkpTLDWm7.png)]
這里我來演示一下在gitee上搭建Hexo博客吧,順便復(fù)習(xí)一下:
準(zhǔn)備:
安裝git,nodejs,npm
(1)首先,創(chuàng)建一個(gè)工作目錄作為我們的博客目錄
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-WUhpbfOK-1632487562381)(https://i.loli.net/2021/09/24/o3b98kCDX6TpOB1.png)]
右鍵git bash here
hexo init初始化hexo
(2)下載主題安裝,這里以butterfly主題為例
在你的 Hexo 根目目錄
git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly修改 Hexo 根目錄下的 _config.yml,把主題為butterfly
theme: butterfly(3)安裝插件
npm install hexo-renderer-pug hexo-renderer-stylus --save在 hexo 的根目錄創(chuàng)建一個(gè)文件_config.butterfly.yml,并把主題目錄的 _config.yml內(nèi)容復(fù)制到_config.butterfly.yml去。
注意: 不要把主題目錄的_config.yml 刪掉
以后只需要在_config.butterfly.yml進(jìn)行配置就行。
Hexo會(huì)自動(dòng)合并主題中的_config.yml和 config.butterfly.yml里的配置,如果存在同名配置,會(huì)使用config.butterfly.yml的配置,其優(yōu)先度較高
然后執(zhí)行:
hexo clean && hexo g && hexo s在瀏覽器打開http://localhost:4000:
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-aOlXuyLx-1632487562385)(https://i.loli.net/2021/09/24/ewNSToGKgUhm9YH.png)]
能打開說明是好的
(4)部署到gitee
安裝組件:
npm install hexo-deployer-git --save然后:
hexo clean && hexo g && hexo d最后出現(xiàn)下面那個(gè)圖為正解.
(5)開啟網(wǎng)頁服務(wù)
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-rO7saibc-1632487562387)(https://i.loli.net/2021/09/24/UavdtkPAQs8cTYM.png)]
直接點(diǎn)擊生成即可,就會(huì)顯示已開啟 Gitee Pages 服務(wù),網(wǎng)站地址: xxxxxx
至此,一個(gè)用戶名.gitee.io的博客網(wǎng)站部署完成
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-wA1DCLrV-1632487562389)(https://i.loli.net/2021/09/24/PmjcKDyRpSnTYzX.png)]
總結(jié)
以上是生活随笔為你收集整理的Git使用手册--超级详细,自己都看哭了的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 反射实现 工厂模式_java
- 下一篇: 微机原理换行代码_微机原理课程设计——汇