git 總結(jié) (study)

命令概覽

  • git stash
  • git clone
  • git init
  • git remote
  • git branch
  • git checkout
  • git add
  • git commit
  • git rm
  • git push
  • git pull
  • git fetch
  • git merge
  • git log
  • git reset
  • git reflog
  • git revert
  • git cherry-pick
  • git tag
  • git rebase

命令解析

stash

  • git stash save 'xxx':儲存變更
  • git stash list:查看儲存區(qū)所以提交列表
  • git stash pop:彈出并應(yīng)用最近一次存儲記錄
  • git stash drop stash@{n}:刪除某次存儲記錄
  • git stash clear:清除所有stash信息

git clone

  • git cline xxx.git 遠(yuǎn)程倉庫拉到本地
  • git clone xxx.git -b dev1遠(yuǎn)程倉庫拉到本地并切換到指定分支

git init
除了我們從遠(yuǎn)端建倉庫古涧,有的時候我們自己本地也是可以自己初始化一個 Git 倉庫來操作的垂券,這個時候我們就直接使用 git init 就能輕松為當(dāng)前目錄創(chuàng)建一個 git 倉庫,也就能開始對當(dāng)前目錄的改動納入版本管理庫了羡滑。
不過本地 init 的倉庫沒法和遠(yuǎn)端進行交互菇爪,所以我們還是需要去 github/gitlab 創(chuàng)建一個遠(yuǎn)端倉庫,然后關(guān)聯(lián)一下柒昏,也就是 git remote命令了

  • git init 本地創(chuàng)建初始化倉庫
  • git remote本地倉庫和線上倉庫關(guān)聯(lián)

git remote
用于和遠(yuǎn)程倉庫進行關(guān)系綁定處理等等操作凳宙。

  • git remote add: 添加一個遠(yuǎn)程版本庫關(guān)聯(lián)
  • git remote rm: 刪除某個遠(yuǎn)程版本庫關(guān)聯(lián)

比如我們本地有個初始化好的倉庫,同時還有一個創(chuàng)建好的遠(yuǎn)程空倉庫职祷,那么我們就可以執(zhí)行一下操作讓他們關(guān)聯(lián)起來:

  • git remote add origin xxx.git先添加到本地倉庫
  • git push -u origin master:表示把當(dāng)前倉庫的 master 分支和遠(yuǎn)端倉庫的 master 分支關(guān)聯(lián)起來氏涩,后面我們執(zhí)行 push 或者 pull 都可以非常方便的進行操作了届囚。

git branch

拿到一個項目之后,你首先還是應(yīng)該看一下當(dāng)前倉庫現(xiàn)在有哪些分支是尖,不要待會創(chuàng)建新分支發(fā)現(xiàn)名字重復(fù)之類的問題意系,那這個時候我們就可以使用 git branch 來查看一下相關(guān)的分支了。

-git branch:查看本地所有分支信息
-git branch -r:查看遠(yuǎn)程倉庫所有分支
-git branch -a:查看本地和遠(yuǎn)程倉庫所有分支

一般來說如果分支太多的話饺汹,還是建議使用可視化工具來查看分支信息蛔添,比如 vscode 或者 source tree 等軟件等等。

當(dāng)然 IDEA 也是可以的首繁。

git checkout

如果我們想以當(dāng)前分支為基準(zhǔn)作郭,創(chuàng)建一個新的分支并切換過去,可以使用如下命令弦疮。

  • git checkout -b dev2 創(chuàng)建并切換到指定新分支

git add

我們在某個分支更改了代碼之后夹攒,想要把它提交一下,那么你第一步要做的就是胁塞,執(zhí)行git add

git add [file1] [file2]: 添加一個或多個文件到暫存區(qū)

一般我們平時在使用的時候咏尝,用的比較多的應(yīng)該還是:

git add .:把當(dāng)前目錄下得所有文件改動都添加到暫存區(qū)
git add -A:把當(dāng)前倉庫內(nèi)所有文件改動都添加到暫存區(qū)

用的最多的還是這個 git add -A 命令,因為大多數(shù)情況啸罢,我們都應(yīng)該把所有變更都加到暫存區(qū)里编检,如果沒有,那大概率是忘了扰才。

git commit

文件添加到暫存區(qū)之后允懂,我們就可以執(zhí)行下一步操作了。

git commit [file1] ... -m [message]:將暫存區(qū)的內(nèi)容提交到本地 git 版本倉庫中

-m 表示的是當(dāng)前提交的信息
-a 對于已經(jīng)被納入 git 管理的文件(該文件你之前提交過 commit)衩匣,那么這個命令就相當(dāng)于幫你執(zhí)行了上述 git add -A蕾总,你就不用再 add 一下了;對于未被 git 管理過的(也就是新增的文件)琅捏,那么還是需要你先執(zhí)行一下 git add -A生百,才能正確被 commit 到本地 git 庫。

通常情況下柄延,我們用的比較多得應(yīng)該是 git commit -m 'feat: do something'蚀浆,設(shè)置當(dāng)前提交的信息。當(dāng)然搜吧,如果你沒有強訴求需要 git addgit commit一定要分開市俊,那你大可選擇 git commit -am,方便又快捷滤奈。

git rm

  • git rm a.html 刪除git倉庫中某個文件
  • .gitignore 項目中此文件表示需要被 git 忽略提交

這個其實也挺有用的秕衙,比如我們項目中有個文件叫 .env,這個文件是一個私有的僵刮,不能被提交到遠(yuǎn)程的据忘,但是我們不小心提交到了本地倉庫中,這個時候我們把這個文件添加到 .gitignore 文件中,表示需要被 git 忽略提交,但是由于我們已經(jīng)提交到本地倉庫了墨榄,所以如果不先從git倉庫刪除是沒用的武翎。
如果直接右鍵刪除,那么這個文件的記錄還是會被保存到遠(yuǎn)端倉庫包斑,別人還是能看得到你這個信息,所以我們需要先從 git倉庫中刪掉這個文件才行。

git rm .env:執(zhí)行完這個命令就表示 .env 文件從git倉庫中刪除了针史,配合 `.gitignore 就能保證以后所有的 .env 文件變更都不用擔(dān)心被提交到遠(yuǎn)程倉庫。

git rm -r dist:如果我們要刪除的是一個目錄碟狞,那么加上-r參數(shù)就好了啄枕。

git push

  • git push --set-upstream origin branch1 推送分支并建立關(guān)聯(lián)關(guān)系

接下來我們想要把剛創(chuàng)建好得分支推送到遠(yuǎn)端,一般來說我們可能會需要用到 git push族沃,但我們這是個新分支频祝,根本沒和遠(yuǎn)端倉庫建立任何聯(lián)系,那么我們就需要加點參數(shù)脆淹,讓他們關(guān)聯(lián)上:

  • git push --set-upstream origin branch1 推送分支并建立關(guān)聯(lián)關(guān)系

完事之后我們可以再去遠(yuǎn)程倉庫看一眼就會發(fā)現(xiàn)我們創(chuàng)建的新分支已經(jīng)推上去了常空。接下來可能會有小伙伴要問了,那如果遠(yuǎn)端倉庫已經(jīng)有了這個分支名咋整盖溺?

這里就分兩種:

1.一種就是你本地的代碼和遠(yuǎn)端代碼沒有沖突的情況下漓糙,并且你本地有新增提交,那么你可以仍然執(zhí)行上述命令烘嘱,這樣就會直接將當(dāng)前本地分支合遠(yuǎn)程分支關(guān)聯(lián)上昆禽,同時把你的改動提交上去。

2.另一種就是本地分支和遠(yuǎn)端分支存在沖突拙友,這個時候你執(zhí)行上述命令就會出現(xiàn)提示沖突为狸,那么接下來就需要你先把遠(yuǎn)端當(dāng)前分支的代碼拉下來,解決一下沖突了遗契,就需要用到 git pull 命令了辐棒。

git pull

通常情況下,如果當(dāng)前分支已經(jīng)和遠(yuǎn)端分支建立了聯(lián)系牍蜂,那么我們想要合并一下遠(yuǎn)端分支漾根,只需要執(zhí)行 git pull就好了,不用帶其他參數(shù)鲫竞,但如果和上面提到的 git push 時產(chǎn)生了沖突辐怕,還沒有建立聯(lián)系的時候,我們就需要指定需要拉取哪個分支的代碼下來進行合并了从绘。

  • git pull origin branch1:拉取指定遠(yuǎn)端分支合并到本地當(dāng)前分支

這里的 origin 是我們對遠(yuǎn)端倉庫的命名寄疏,想改也是可以的是牢,不過一般都是用的 origin
回到上面提到的沖突問題陕截,我們可以直接使用 git pull然后指定合并當(dāng)前本地分支想要建立聯(lián)系的遠(yuǎn)程分支驳棱,然后本地解決一下沖突,然后提交一下改動农曲,再執(zhí)行 git push --set-upstream origin branch1命令就大功告成了社搅。

git fetch

了解完上面描述的 git pull,命令之后乳规,其實這個命令也很好理解了形葬,特定時候,可能我們只是想把遠(yuǎn)端倉庫對應(yīng)分支的變更拉到本地而已暮的,并不想自動合并到我的工作區(qū)(你當(dāng)前正在進行代碼變更的工作區(qū))笙以,等晚些時候我寫完了某部分的代碼之后再考慮合并,那么你就可以先使用git fetch青扔。
fetch 完畢之后源织,我提交了自己當(dāng)前工作去的變更到本地倉庫,然后想合并一下遠(yuǎn)端分支的更改微猖,這個時候執(zhí)行一下git merge origin/[當(dāng)前分支名](默認(rèn)一般是用 origin 表示遠(yuǎn)端的分支前綴)即可谈息。

git merge

合并指定分支代碼到當(dāng)前分支。一般來說凛剥,我們用的比較多的場景可能是侠仇,遠(yuǎn)端倉庫 master 分支有變更了,同時這個時候我們準(zhǔn)備提 MR 了犁珠,那么就需要先合一下 master 的代碼逻炊,有沖突就解決下沖突,那這個時候我們可以做以下操作:

切到 master 分支犁享,git pull拉一下最新代碼
切回開發(fā)分支余素,執(zhí)行 git merge master合并一下 master 代碼

同理,上面介紹的 git merge origin/xxx 也是一樣的用法炊昆。

git log
顧名思義桨吊,就是日志的意思,執(zhí)行這個命令之后凤巨,我們能看到當(dāng)前分支的提交記錄信息视乐,比如 commitId 和提交的時間描述等等,大概長下面這樣:

commit e55c4d273141edff401cbc6642fe21e14681c258 (HEAD -> branch1, origin/branch1)
Author: name <44311619+STDSuperman@xxx.xxx.github.com>
Date:   Mon Aug 1 23:16:11 2022 +0800

    Initial commit

這個時候可能有讀者會問了敢茁,這個都用來干啥的佑淀,簡單的用法呢就是看看有誰提交了啥,還有更重要的用法呢就是進行代碼版本的回滾彰檬,或者其他有意思的操作伸刃,且聽筆者為你微微道來谎砾。

git reset

  • git reset [--soft | --mixed | --hard] [HEAD]

關(guān)于 HEAD:

HEAD 表示當(dāng)前版本
HEAD^ 上一個版本
HEAD^^ 上上一個版本
HEAD^^^ 上上上一個版本
HEAD~n 回撤 n 個版本,這種也是更加方便的

參數(shù)解析
以下解析均基于后接參數(shù)為 HEAD^捧颅,也就是git reset HEAD^棺榔。

--soft: 重置你最新一次提交版本,不會修改你的暫存區(qū)和工作區(qū)隘道。
--mixed: 默認(rèn)參數(shù),用于重置暫存區(qū)的文件與上一次的提交(commit)保持一致郎笆,工作區(qū)文件內(nèi)容保持不變谭梗。
--hard: 重置所有提交到上一個版本,并且修改你的工作區(qū)宛蚓,會徹底回到上一個提交版本激捏,在代碼中看不到當(dāng)前提交的代碼,也就是你的工作區(qū)改動也被干掉了凄吏。

說了半天似乎不是很好理解远舅,我們舉個栗子理解下:
比如:

我改動了我的README 文件,在我們的工作區(qū)就產(chǎn)生了一次改動痕钢,但是這個時候還沒有提交到暫存區(qū)图柏,在vscode里會顯示為工作區(qū)修改的標(biāo)記
接著我們執(zhí)行git add,這個時候你查看暫存區(qū)任连,會發(fā)現(xiàn)這次改動被提交進去了蚤吹,同時被 vscode標(biāo)記為已被提交至?xí)捍鎱^(qū)
然后再執(zhí)行 git commit,這個時候就完成了一次提交

接下來我們想撤回這次提交随抠,以上三種參數(shù)所體現(xiàn)的表現(xiàn)會是這樣的:

--soft:我們對 README 的更改狀態(tài)現(xiàn)在變成已被提交至?xí)捍鎱^(qū)裁着,也就是上面 2 的步驟。
--mixed: 我們對 README 的更改變成還未被提交至?xí)捍鎱^(qū)拱她,也就是上面 1 的步驟二驰。
--hard:我們對 README 的所有更改全沒了,git log 中也找不到我們對 README 剛剛那次修改的痕跡秉沼。

默認(rèn)情況下我們不加參數(shù)桶雀,就是 --mixed,也就是重置暫存區(qū)的文件到上一次提交的版本氧猬,文件內(nèi)容不動背犯。一般會在什么時候用到呢?

場景一(撤銷 git add)

可能大部分情況下盅抚,比如 vscode 其實大家更習(xí)慣于使用可視化的撤銷能力漠魏,但是呢,這里我們其實也可以稍微了解下這其中的奧秘妄均,其實也很簡單:

方式一:git reset
方式二:git reset HEAD

其實一二都是一樣柱锹,如果 reset 后面不跟東西就是默認(rèn) HEAD哪自。

場景二 (撤銷 git commit)
當(dāng)你某個改動提交到本地倉庫之后,也就是commit之后禁熏,這個時候你想撤回來壤巷,再改點其他的,那么就可以直接使用git reset HEAD^瞧毙。這個時候你會驚奇的發(fā)現(xiàn)胧华,你上一版的代碼改動,全部變成了未被提交到暫存區(qū)的狀態(tài)宙彪,這個時候你再改改代碼矩动,然后再提交到暫存區(qū),然后一起再commit 就可滿足你的需求了释漆。
除了這種基礎(chǔ)用法悲没,我們還可以配合其他命令操作一下。

場景三
某一天你老板跟你說男图,昨天新加的功能不要了示姿,給我切回之前的版本看看效果,那么這個時候逊笆,你可能就需要將工作區(qū)的代碼回滾到上一個commit版本了栈戳,操作也十分簡單:

git log查看上一個commit 記錄,并復(fù)制commitIdgit reset --hard commitId`直接回滾览露。

場景四
果某一個你開發(fā)需求正開心呢荧琼,突然發(fā)現(xiàn),自己以前改的某個東西怎么不見了差牛,你想起來好像是某次合并命锄,沒注意被其他提交沖掉了,你心一想偏化,完了脐恩,寫了那么多,怎么辦侦讨?很簡單驶冒,回到有這份代碼的那個版本就好了(前提你提交過到本地倉庫)。
假設(shè)我們有這么兩個提交記錄韵卤,我們需要下面那個 365 開頭 commitId 的代碼:

commit e62b559633387ab3a5324ead416f09bf347d8e4a (HEAD -> master)
Author: xiaohang.lin <xiaohang.lin@alibaba-inc.com>
Date:   Sun Aug 14 18:08:56 2022 +0800

    merge

commit 36577ea21d79350845f104eee8ae3e740f19e038 (origin/master, origin/HEAD)
Author: 陌小路 <44311619+STDSuperman@users.noreply.github.com>
Date:   Sun Aug 14 15:57:34 2022 +0800

    Update README.md

搶救第一步 git log找到有你這個代碼的那個 commitId(也就是 36577ea21d79350845f104eee8ae3e740f19e038)
搶救第二步 git reset --hard commitId
第三步:Ctrl + c 你的目標(biāo)代碼

這個時候你想把復(fù)制好的代碼寫回去骗污,該怎么辦呢,你可能會再 git log看一下我們 reset 之前的 commitId沈条,你會發(fā)現(xiàn)需忿,完了,之前的 commitId 都沒了,只有這個 365 了屋厘。

commit 36577ea21d79350845f104eee8ae3e740f19e038 (origin/master, origin/HEAD)
Author: 陌小路 <44311619+STDSuperman@users.noreply.github.com>
Date:   Sun Aug 14 15:57:34 2022 +0800

    Update README.md

不要慌涕烧,請記住一句話,只要你不刪你本地的 .git 倉庫汗洒,你都能找回以前所有的提交议纯。
git log看不到的話,我們就可以祭出我們的絕招了:git reflog

36577ea (HEAD -> master, origin/master, origin/HEAD) HEAD@{0}: reset: moving to 36577ea21d79350845f104eee8ae3e740f19e038
e62b559 HEAD@{1}: reset: moving to e62b559633387ab3a5324ead416f09bf347d8e4a

這里我們可以看到兩行記錄溢谤,一個是我們執(zhí)行 reset 到 365 的記錄瞻凤,另一條不知道是啥,不重要世杀,我們想回到我們剛剛 reset 之前的狀態(tài)也很簡單鲫构,直接復(fù)制它上一次的變動也就是這個 e62b559,然后執(zhí)行 git reset --hard e62b559玫坛,然后你會驚奇的發(fā)現(xiàn),你之前的代碼又回來了包晰。
接下來把你以前版本的代碼湿镀,再 Ctrl + v 放進來就完成了。

git reflog
介紹:用來查看你的所有操作記錄伐憾。

既然git log看不到我之前 commitId 了勉痴,那么就回到 reset 之前的狀態(tài)吧!

git revert

當(dāng)然了树肃,如果是針對master的操作蒸矛,為了安全起見,一般還是建議使用revert命令胸嘴,他也能實現(xiàn)和reset 一樣的效果雏掠,只不過區(qū)別來說,reset是向后的劣像,而 revert是向前的乡话,怎么理解呢?簡單來說耳奕,把這個過程當(dāng)做一次時光穿梭绑青,reset表示你犯了一個錯,他會帶你回到?jīng)]有犯錯之前屋群,而revert 會給你一個彌補方案闸婴,采用這個方案之后讓你得到的結(jié)果和沒犯錯之前一樣。
舉個栗子:
假設(shè)你改了README的描述芍躏,新增了一行文字邪乍,提交上去了,過一會你覺得這個寫了有問題,想要撤銷一下溺欧,但是又不想之前那個提交消失在當(dāng)前歷史當(dāng)中喊熟,那么你就可以選擇使用 git revert [commitId],那么它就會產(chǎn)生一次新的提交姐刁,提交的內(nèi)容就是幫你刪掉你上面新增的內(nèi)容芥牌,相當(dāng)于是一個互補的操作。

PS D:\Code\other\git-practice> git revert 3b18a20ad39eea5264b52f0878efcb4f836931ce
On branch branch2
Your branch is ahead of 'origin/branch2' by 1 commit.
  (use "git push" to publish your local commits)

這個時候聂使,它會提示你可以把新的改動 push 上去了壁拉。
其實你如果在 gitlab 進行 mr 之后,想要回滾這個 mr柏靶,一般它會給你一個revert 的按鈕選項弃理,讓你進行更安全的回滾操作。

git cherry-pick

其實對于我們工作中大部分場景下應(yīng)該用不到這個功能屎蜓,但是呢有的時候這個命令又能挽救你于水火之間痘昌,那就是當(dāng)某個倒霉蛋忘記切分支,然后在master分支上改了代碼炬转,并且提交到了本地倉庫中辆苔,這個時候使用git cherry-pick簡直就是神器了。

git cherry-pick:將執(zhí)行分支的指定提交合并到當(dāng)前分支扼劈。

一聽介紹就來精神了驻啤,雀氏有點東西,比如我在master 分支提交了某個需求的代碼荐吵,同時還沒提交到遠(yuǎn)程分支骑冗,那么你就可以先git log 查看一下當(dāng)前的提交,找到 master 分支正常提交之后的所有commitId先煎,然后復(fù)制出來贼涩,然后再切到你建好的開發(fā)分支,接著執(zhí)行
git cherry-pick master commitId1 commitId2 commitId4薯蝎。
完事之后記得清理一下作案現(xiàn)場磁携,把你的 master 分支代碼恢復(fù)到正常的提交上去。

git tag

顧名思義良风,也就是打標(biāo)簽的意思谊迄。一般可能會在你發(fā)布了某個版本,需要給當(dāng)前版本打個標(biāo)簽烟央,你可以翻閱 vite 的官方 git 倉庫统诺,查看它的 tag 信息,它這里就標(biāo)注了各個版本發(fā)布時候的 tag 標(biāo)簽疑俭。

它有兩種標(biāo)簽形式粮呢,一種是輕量標(biāo)簽,另一種是附注標(biāo)簽。

輕量標(biāo)簽

  • 創(chuàng)建方式:git tag v1.0.0

它有點像是對某個提交的引用啄寡,從表現(xiàn)上來看豪硅,它又有點像基于當(dāng)前分支提交給你創(chuàng)建了一個不可變的分支,它是支持你直接 checkout到這個分支上去挺物,但是它和普通分支還是有著本質(zhì)的區(qū)別的懒浮,如果你切換到了這個tag "分支",你去修改代碼同時產(chǎn)生了一次提交识藤,亦或者是reset版本砚著,這對于該tag本身不會有任何影響,而是為你生成了一個獨立的提交痴昧,但是卻在你的分支歷史中是找不到的稽穆,你只能通過commitId 來切換到本次提交,看圖:

image.png

那如果你從其他分支通過 commitId 切換到這個改動上赶撰,它會提示你以下內(nèi)容:

Note: switching to 'be276009'.

changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

大致意思就是你可以選擇丟棄或者保留當(dāng)前更改舌镶,如果需要保留的話直接使用下面的 git switch 命令創(chuàng)建一個新分支即可。

附注標(biāo)簽

創(chuàng)建方式:git tag -a v1.0.1 -m "發(fā)布正式版 1.0.1"

引用官方文檔的描述:

而附注標(biāo)簽是存儲在 Git 數(shù)據(jù)庫中的一個完整對象豪娜, 它們是可以被校驗的乎折,其中包含打標(biāo)簽者的名字、電子郵件地址侵歇、日期時間, 此外還有一個標(biāo)簽信息吓蘑,并且可以使用 GNU Privacy Guard (GPG)簽名并驗證惕虑。

從概念上看,輕量標(biāo)簽更像是一個臨時的標(biāo)簽磨镶,而附注標(biāo)簽更加正式一點溃蔫,能夠保留更多的信息。它創(chuàng)建的方式和輕量標(biāo)簽區(qū)別主要是-a-m 參數(shù)琳猫,如果你的-m參數(shù)不傳伟叛,那么編輯器會讓你手動填寫。

對比標(biāo)簽信息
打完標(biāo)簽之后脐嫂,我們可以使用 git show命令來看看這兩種標(biāo)簽最終體現(xiàn)的信息有哪些。

輕量標(biāo)簽

commit dcbd335be87f51eaa0cc1852400e64e9f46e84d8 (HEAD -> test-branch1, tag: v1.0.2, tag: v1.0.1)
Author: STDSuperman <2750556766@qq.com>
Date:   Tue Aug 16 22:54:36 2022 +0800

    xx

diff --git a/README.md b/README.md
index 715766a..b4cdea6 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,3 @@
-# git-practice
\ No newline at end of file
+# git-practice
+
+test tag

附注標(biāo)簽

tag v1.0.1
Tagger: STDSuperman <2750556766@qq.com>
Date:   Tue Aug 16 22:58:27 2022 +0800

發(fā)布正式版 1.0.0

commit dcbd335be87f51eaa0cc1852400e64e9f46e84d8 (HEAD -> test-branch1, tag: v1.0.1)
Author: STDSuperman <2750556766@qq.com>
Date:   Tue Aug 16 22:54:36 2022 +0800

    xx

diff --git a/README.md b/README.md
index 715766a..b4cdea6 100644
--- a/README.md
+++ b/README.md

推送標(biāo)簽

git push origin tagName

$> git push origin v1.0.1
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 448 bytes | 448.00 KiB/s, done.
Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:STDSuperman/git-practice.git
 * [new tag]         v1.0.1 -> v1.0.1

當(dāng)然账千,附注標(biāo)簽和輕量標(biāo)簽都是可以被推送到遠(yuǎn)端的侥蒙。

其他命令

查看標(biāo)簽:git tag
篩選標(biāo)簽:git tag -l v1.0.1
刪除標(biāo)簽:git tag -d v1.0.1
刪除遠(yuǎn)程標(biāo)簽:git push origin --delete v1.0.2

另一種刪除遠(yuǎn)程方式(表示將“:”前面空值替換到遠(yuǎn)程,也不失為一種方式):git push origin :refs/tags/v1.0.1

git rebase

這塊其實涉及的玩法會相對來說復(fù)雜一點匀奏,可能還是需要拿來和 merge 做一下對比才更加有意義鞭衩,東西有點多,先擱置一下。

WIP...

參考來源鏈接:https://juejin.cn/post/7131713973572861966

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末论衍,一起剝皮案震驚了整個濱河市瑞佩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌坯台,老刑警劉巖炬丸,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異捂人,居然都是意外死亡御雕,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門滥搭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酸纲,“玉大人,你說我怎么就攤上這事瑟匆∶銎拢” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵愁溜,是天一觀的道長疾嗅。 經(jīng)常有香客問我,道長冕象,這世上最難降的妖魔是什么代承? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮渐扮,結(jié)果婚禮上论悴,老公的妹妹穿的比我還像新娘。我一直安慰自己墓律,他們只是感情好膀估,可當(dāng)我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著耻讽,像睡著了一般察纯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上针肥,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天饼记,我揣著相機與錄音,去河邊找鬼慰枕。 笑死握恳,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的捺僻。 我是一名探鬼主播乡洼,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼崇裁,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了束昵?” 一聲冷哼從身側(cè)響起拔稳,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤锹雏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后礁遵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡佣耐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了奸远。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡懒叛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出薛窥,到底是詐尸還是另有隱情,我是刑警寧澤诅迷,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布妥凳,位于F島的核電站答捕,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏拱镐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一沃琅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧益眉,春花似錦晌柬、人聲如沸姥份。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽澈歉。三九已至,卻和暖如春屿衅,著一層夾襖步出監(jiān)牢的瞬間埃难,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工涤久, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留涡尘,地道東北人。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓响迂,卻偏偏與公主長得像考抄,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子栓拜,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一.Git簡介 Git是目前世界上最先進的分布式版本控制系統(tǒng)座泳。它就沒有中央服務(wù)器的,每個人的電腦就是一個完整的版本...
    大鵬的鵬閱讀 534評論 0 0
  • 題外話: git命令真的很多幕与,這里也只是列舉了一些常用的挑势,后邊的注釋很重要,耐心看會看到不同及規(guī)律啦鸣。 熱熱身:...
    3Q竹林閱讀 766評論 0 1
  • git安裝和配置: 一潮饱、安裝git客戶端,查看如下鏈接:https://www.cnblogs.com/ximia...
    零下的雨閱讀 356評論 0 1
  • add git add 將文件添加到暫存區(qū)诫给,無論文件是否已被跟蹤 git add -u 將工作區(qū)被修改過且被git...
    zucong閱讀 273評論 0 1
  • 寫在前面 有關(guān)Git的誕生故事以及Git的強大香拉,這里無須贅述。寫這篇文章的原因是因為中狂,習(xí)慣了用Git桌面工具向Gi...
    艾倫先生閱讀 558評論 0 3