自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

十個(gè)開發(fā)者必知必會(huì)的Git命令

開發(fā) 前端
硬重置會(huì)徹底抹去最后一次提交以及與之相關(guān)的所有改動(dòng)。使用 ??--hard?? 參數(shù)時(shí),無(wú)法回退。所以當(dāng)想要永久丟棄最后一次提交和它的所有改動(dòng)時(shí),請(qǐng)謹(jǐn)慎使用這個(gè)命令。

Git和GitHub是每個(gè)軟件工程師必須了解的最基礎(chǔ)的東西,開發(fā)人員的日常工作中都要與這些工具進(jìn)行交互。精通Git可以簡(jiǎn)化工作,極大提高生產(chǎn)力。

本文,我們分享一組開發(fā)者必知的Git命令。

Git 術(shù)語(yǔ)

先熟悉一些基本的Git術(shù)語(yǔ)。這能夠幫助更好地理解Git命令。

  • HEAD:

在Git中,HEAD是個(gè)特殊的指針/引用,它始終指向當(dāng)前分支中最新的提交。當(dāng)您進(jìn)行新的提交時(shí),HEAD會(huì)向前移動(dòng),指向該新的提交。例如,如果在main分支上進(jìn)行了新的提交,HEAD將指向該新的提交,表示它是main分支中最新的提交。

  • ^(插入符號(hào)):

在Git中,符號(hào)^用于導(dǎo)航項(xiàng)目的歷史時(shí)間線。當(dāng)使用HEAD^時(shí),它引用的是當(dāng)前提交之前的提交。如果在^后附加一個(gè)數(shù)字,例如HEAD^2,它引用的是當(dāng)前提交之前的第二個(gè)提交。簡(jiǎn)而言之,^符號(hào)允許在項(xiàng)目歷史中向后遍歷,而數(shù)字值則可以精確指定要回溯的提交數(shù)量。

  • 暫存區(qū):

暫存區(qū)是用來(lái)存放開發(fā)人員希望在下一次提交中包含的更改的地方。暫存區(qū)可以選擇要提交的內(nèi)容,審查、組織和完善您的修改。通過(guò)使用暫存區(qū),可以控制哪些更改將被包含在提交中。當(dāng)使用git add命令時(shí),實(shí)際上是將更改添加到暫存區(qū),可以類比為聲明:“我希望這些更改成為我下一次提交的一部分?!?/p>

現(xiàn)在逐個(gè)介紹10個(gè)Git命令。

1 將文件添加到暫存區(qū)并提交

通常,在Git中,使用git add *命令將所有修改過(guò)的文件放入暫存區(qū),然后使用git commit -m "commitMessage"命令提交這些更改。然而,有一種更簡(jiǎn)化的命令,可以在一個(gè)步驟中完成這兩個(gè)任務(wù):

git commit -am "commitMessage"

-am標(biāo)志允許開發(fā)人員在一個(gè)高效的操作中既將這些更改放入暫存區(qū),又進(jìn)行提交。

2 創(chuàng)建并切換到Git分支

與前面的情況類似,有另一條命令將這兩個(gè)命令的功能合并在一起。不需要使用兩個(gè)單獨(dú)的命令,git branch branchName用于創(chuàng)建一個(gè)分支,然后git checkout branchName用于切換到該分支,可以使用以下命令在一個(gè)步驟中完成這兩個(gè)任務(wù):

git checkout -b branchName

帶有g(shù)it checkout命令的-b標(biāo)志允許開發(fā)人員不僅創(chuàng)建一個(gè)新分支,還立即切換到該分支。

3 刪除Git分支

要在Git中刪除一個(gè)分支,可以使用git branch -d或git branch -D命令。-d選項(xiàng)用于安全刪除,只有當(dāng)該分支完全合并到當(dāng)前分支時(shí)才會(huì)刪除該分支。-D選項(xiàng)用于強(qiáng)制刪除,無(wú)論該分支是否完全合并,都會(huì)刪除在Git中,以下是命令示例:

安全刪除(檢查合并情況):

git branch -d branchName

強(qiáng)制刪除(不檢查合并情況):

git branch -D branchName

4 重命名Git分支

要重命名一個(gè)分支,可以使用git branch -m命令,后面跟上當(dāng)前分支名稱和新的目標(biāo)分支名稱。例如,如果想將一個(gè)名為oldBranch的分支重命名為newBranch,可以運(yùn)行以下命令:

git branch -m oldBranch newBranch

然而,如果想要重命名當(dāng)前正在工作的分支,而不明確指定舊的名稱,可以使用以下命令:

git branch -m newBranchName

在這種情況下,無(wú)需指定舊的分支名稱,因?yàn)镚it會(huì)假設(shè)您想將當(dāng)前分支重命名為新的名稱。

5 取消暫存特定文件

有時(shí),開發(fā)人員可能希望從暫存區(qū)中移除特定文件,以便在提交之前進(jìn)行其他修改。使用以下命令:

git reset filename

這將取消暫存該文件,同時(shí)保留您的更改。

6 放棄對(duì)特定文件的更改

如果想要完全放棄對(duì)特定文件的更改,并將其恢復(fù)為上次提交的狀態(tài),請(qǐng)使用以下命令:

git checkout -- filename

該命令將確保文件返回到其以前的狀態(tài),撤消任何最近的修改。這是一種有用的方法,可以在不影響其他更改的情況下重新開始處理特定文件。

7 更新最后的Git提交

假設(shè)剛剛在Git倉(cāng)庫(kù)中進(jìn)行了一次提交,然后意識(shí)到您忘記在該提交中包含一個(gè)更改,或者想要修復(fù)提交消息本身。您不希望為這個(gè)小的更改創(chuàng)建一個(gè)全新的提交。相反,您想要將其添加到先前的提交中。這時(shí)可以使用以下命令的地方:

git commit --amend -m 'message'

該命令修改最近進(jìn)行的提交。它將任何暫存的更改(使用git add添加的更改)與新的注釋結(jié)合起來(lái),創(chuàng)建一個(gè)更新后的提交。

需要記住的是,如果您已經(jīng)將提交推送到遠(yuǎn)程倉(cāng)庫(kù),需要使用git push --force強(qiáng)制推送更改以更新遠(yuǎn)程分支。因?yàn)闃?biāo)準(zhǔn)的git push操作將一個(gè)新的提交附加到您的遠(yuǎn)程倉(cāng)庫(kù),而不是修改最后的提交。

8 保存更改

假設(shè)您正在兩個(gè)不同的分支A和B上進(jìn)行工作。當(dāng)在A分支上進(jìn)行更改時(shí),團(tuán)隊(duì)要求您在B分支上修復(fù)一個(gè)錯(cuò)誤。當(dāng)嘗試使用git checkout B切換到B分支時(shí),Git會(huì)阻止并顯示錯(cuò)誤信息:

圖片圖片

如果收到錯(cuò)誤消息并建議提交更改,那么提交是一個(gè)固定點(diǎn),會(huì)將更改記錄在項(xiàng)目的歷史中。但是,如果您仍然需要在當(dāng)前工作中繼續(xù)進(jìn)行其他修改,不想立即提交這些更改,那么可以使用"stash"功能來(lái)隱藏這些修改:

git stash

git stash會(huì)暫時(shí)保存尚未準(zhǔn)備好提交的更改,允許切換分支或在其他任務(wù)上工作,而無(wú)需提交不完整的工作。

要在分支中重新應(yīng)用已隱藏的更改,可以使用git stash apply或git stash pop。這兩個(gè)命令都會(huì)恢復(fù)最新的隱藏更改。stash apply僅僅恢復(fù)更改,而pop則恢復(fù)更改并將其從隱藏中移除。

9 回滾 Git 提交

想象一下,你正在一個(gè) Git 項(xiàng)目上工作,然后發(fā)現(xiàn)某個(gè)提交引入了一些不良的改動(dòng)。你希望撤銷這些改動(dòng),但又不想完全刪除該提交的歷史記錄。在這種情況下,可以使用以下命令來(lái)撤銷特定的提交:

git revert commitHash

這是一種安全且非破壞性的方式來(lái)糾正項(xiàng)目中的錯(cuò)誤或不必要的修改。

舉個(gè)例子,假設(shè)你有一系列的提交:

  • 提交 A
  • 提交 B(在這里引入了不良的改動(dòng))
  • 提交 C
  • 提交 D

要撤銷提交 B 的影響,運(yùn)行:

git revert commitHashOfB

Git 會(huì)創(chuàng)建一個(gè)新的提交,我們稱之為提交 E,它會(huì)抵消提交 B 引入的改動(dòng)。提交 E 成為你的分支中最新的提交,項(xiàng)目的狀態(tài)將回到提交B之前的狀態(tài)。

如果想知道如何獲取提交哈希值,可以使用 git reflog 命令。在下面的截圖中,被標(biāo)記的部分表示你可以復(fù)制的提交哈希值:

圖片圖片

10 重置 Git 提交

假設(shè)你已經(jīng)對(duì)項(xiàng)目進(jìn)行了一次提交。然而,在檢查之后,你意識(shí)到需要調(diào)整或完全撤銷你最后一次的提交。針對(duì)這種情況,Git 提供了以下強(qiáng)大的命令:

10.1 軟重置

git reset --soft HEAD^

當(dāng)使用 git reset --soft HEAD^ 命令時(shí),你進(jìn)行了一次軟重置。這個(gè)命令將回退到上一次的提交,同時(shí)保留所有在暫存區(qū)中的修改。簡(jiǎn)單來(lái)說(shuō),你可以輕松地取消提交,同時(shí)保留你的代碼修改。當(dāng)需要修改上一次的提交,可能是為了再次提交之前添加更多的修改時(shí),這個(gè)命令非常有用。

10.2 混合重置

git reset --mixed HEAD^

當(dāng)使用 git reset HEAD^ 命令而沒(méi)有指定 --soft 或者 --hard 參數(shù)時(shí),它的行為會(huì)默認(rèn)為混合重置。這種方式會(huì)撤銷上一次的提交,并從暫存區(qū)中刪除該提交的改動(dòng),但是會(huì)保留這些改動(dòng)在工作目錄中。

這個(gè)命令非常有用,可以實(shí)現(xiàn)撤銷上一次的提交,并重新開始進(jìn)行修改,同時(shí)保留工作目錄中的改動(dòng)以便重新提交。

10.3 硬重置

git reset --hard HEAD^

硬重置會(huì)徹底抹去最后一次提交以及與之相關(guān)的所有改動(dòng)。使用 --hard 參數(shù)時(shí),無(wú)法回退。所以當(dāng)想要永久丟棄最后一次提交和它的所有改動(dòng)時(shí),請(qǐng)謹(jǐn)慎使用這個(gè)命令。

責(zé)任編輯:武曉燕 來(lái)源: Java學(xué)研大本營(yíng)
相關(guān)推薦

2023-11-21 20:15:10

Git命令開發(fā)

2024-01-23 18:49:38

SQL聚合函數(shù)數(shù)據(jù)分析

2024-01-10 18:01:22

編程技巧Java 12

2023-09-20 22:52:12

Kubernetes快捷方式

2019-07-05 07:49:19

TCPIP網(wǎng)絡(luò)協(xié)議

2025-02-10 08:18:27

JSON數(shù)據(jù)交換格式

2020-06-03 15:25:27

運(yùn)維架構(gòu)技術(shù)

2014-02-09 10:30:17

Python程序員工具

2023-12-01 18:06:35

2018-10-26 14:10:21

2024-08-22 08:57:32

Python技巧參數(shù)

2013-07-18 17:22:07

Android開發(fā)資源Android開發(fā)學(xué)習(xí)Android開發(fā)

2013-05-06 15:41:30

Android開發(fā)資源

2022-09-28 08:40:04

殺死一個(gè)終端進(jìn)程

2011-12-05 22:44:53

Android

2012-04-02 22:49:58

Android

2023-12-26 12:10:13

2016-01-05 13:43:37

谷歌Java競(jìng)爭(zhēng)

2023-12-06 18:06:37

Git開發(fā)

2011-07-08 14:14:13

Web服務(wù)器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)