主頁(yè) > 知識(shí)庫(kù) > Git上一些修改錯(cuò)誤操作的命令使用技巧

Git上一些修改錯(cuò)誤操作的命令使用技巧

熱門標(biāo)簽:南昌crm外呼系統(tǒng)價(jià)格 廈門語(yǔ)音電銷機(jī)器人價(jià)格 北京電話機(jī)器人哪家便宜 在抖音做地圖標(biāo)注用手機(jī)標(biāo) 長(zhǎng)治市400企業(yè)電話申請(qǐng)費(fèi)用 ai外呼系統(tǒng)怎樣掛機(jī)賺錢 網(wǎng)絡(luò)外呼系統(tǒng)怎么樣 溫州鹿城地圖標(biāo)注找誰(shuí) 電話機(jī)器人近幾年收費(fèi)標(biāo)準(zhǔn)

修改錯(cuò)誤的提交信息commit message
提交信息很長(zhǎng)時(shí)間內(nèi)會(huì)一直保留在你的代碼庫(kù)code base中,所以你肯定希望通過(guò)這個(gè)信息正確地了解代碼修改情況。 下面這個(gè)命令可以讓你編輯最近一次的提交信息,但是你必須確保沒(méi)有對(duì)當(dāng)前的代碼庫(kù)working copy做修改,否則這些修改也會(huì)隨之一起提交。
[/code]
$ git commit --amend -m ”YOUR-NEW-COMMIT-MESSAGE”
[/code]
假如你已經(jīng)將代碼提交(git commit)推送(git push)到了遠(yuǎn)程分支,那么你需要通過(guò)下面的命令強(qiáng)制推送這次的代碼提交。

復(fù)制代碼
代碼如下:

$ git push remote> branch> --force

從當(dāng)前Git分支移除未追蹤的本地文件
假設(shè)你湊巧有一些未被追蹤的文件(因?yàn)椴辉傩枰鼈儯?,不想每次使用git status命令時(shí)讓它們顯示出來(lái)。下面是解決這個(gè)問(wèn)題的一些方法:

復(fù)制代碼
代碼如下:

$ git clean -f -n # 1
$ git clean -f # 2
$ git clean -fd # 3
$ git clean -fX # 4
$ git clean -fx # 5

(1): 選項(xiàng)-n將顯示執(zhí)行(2)時(shí)將會(huì)移除哪些文件。
(2): 該命令會(huì)移除所有命令(1)中顯示的文件。
(3): 如果你還想移除文件件,請(qǐng)使用選項(xiàng)-d。
(4): 如果你只想移除已被忽略的文件,請(qǐng)使用選項(xiàng)-X。
(5): 如果你想移除已被忽略和未被忽略的文件,請(qǐng)使用選項(xiàng)-x。
請(qǐng)注意最后兩個(gè)命令中X的區(qū)別。

修復(fù)更早期的 commit

場(chǎng)景: 你在一個(gè)更早期的 commit 里忘記了加入一個(gè)文件,如果更早的 commit 能包含這個(gè)忘記的文件就太棒了。你還沒(méi)有 push,但這個(gè) commit 不是最近的,所以你沒(méi)法用 commit --amend.

方法:

復(fù)制代碼
代碼如下:
git commit --squash SHA of the earlier commit>

復(fù)制代碼
代碼如下:
git rebase --autosquash -i even earlier SHA>

原理:

復(fù)制代碼
代碼如下:
git commit --squash
會(huì)創(chuàng)建一個(gè)新的 commit ,它帶有一個(gè) commit 消息,類似于 squash! Earlier commit。 (你也可以手工創(chuàng)建一個(gè)帶有類似 commit 消息的 commit,但是 commit --squash 可以幫你省下輸入的工作。)

如果你不想被提示為新合并的 commit 輸入一條新的 commit 消息,你也可以利用 git commit --fixup 。在這個(gè)情況下,你很可能會(huì)用commit --fixup ,因?yàn)槟阒皇窍M?rebase 的時(shí)候使用早期 commit 的 commit 消息。


復(fù)制代碼
代碼如下:
rebase --autosquash -i
  會(huì)激活一個(gè)交互式的 rebase 編輯器,但是編輯器打開(kāi)的時(shí)候,在 commit 清單里任何 squash! 和 fixup! 的 commit 都已經(jīng)配對(duì)到目標(biāo) commit 上了,如下所示:

在使用 --squash 和 --fixup 的時(shí)候,你可能不記得想要修正的 commit 的 SHA 了— 只記得它是前面第 1 個(gè)或第 5 個(gè) commit。你會(huì)發(fā)現(xiàn) Git 的 ^ 和 ~ 操作符特別好用。HEAD^ 是 HEAD 的前一個(gè) commit。 HEAD~4 是 HEAD 往前第 4 個(gè) – 或者一起算,倒數(shù)第 5 個(gè) commit。

 

停止追蹤一個(gè)文件

場(chǎng)景: 你偶然把 application.log 加到代碼庫(kù)里了,現(xiàn)在每次你運(yùn)行應(yīng)用,Git 都會(huì)報(bào)告在 application.log 里有未提交的修改。你把 *.login 放到了 .gitignore 文件里,可文件還是在代碼庫(kù)里 — 你怎么才能告訴 Git “撤銷” 對(duì)這個(gè)文件的追蹤呢?

方法:

復(fù)制代碼
代碼如下:
git rm --cached application.log

原理: 雖然 .gitignore 會(huì)阻止 Git 追蹤文件的修改,甚至不關(guān)注文件是否存在,但這只是針對(duì)那些以前從來(lái)沒(méi)有追蹤過(guò)的文件。一旦有個(gè)文件被加入并提交了,Git 就會(huì)持續(xù)關(guān)注該文件的改變。類似地,如果你利用 git add -f 來(lái)強(qiáng)制或覆蓋了 .gitignore, Git 還會(huì)持續(xù)追蹤改變的情況。之后你就不必用-f  來(lái)添加這個(gè)文件了。

如果你希望從 Git 的追蹤對(duì)象中刪除那個(gè)本應(yīng)忽略的文件, git rm --cached 會(huì)從追蹤對(duì)象中刪除它,但讓文件在磁盤上保持原封不動(dòng)。因?yàn)楝F(xiàn)在它已經(jīng)被忽略了,你在  git status 里就不會(huì)再看見(jiàn)這個(gè)文件,也不會(huì)再偶然提交該文件的修改了。


刪除本地和遠(yuǎn)程Git分支
刪除本地分支:

復(fù)制代碼
代碼如下:

$ git branch --delete --force branchName>

或者使用選項(xiàng)-D作為簡(jiǎn)寫:

復(fù)制代碼
代碼如下:

$ git branch -D

刪除遠(yuǎn)程分支:

復(fù)制代碼
代碼如下:

$ git push origin --delete branchName>

標(biāo)簽:漯河 黃石 法律咨詢 隴南 許昌 荊門 丹東 武漢

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Git上一些修改錯(cuò)誤操作的命令使用技巧》,本文關(guān)鍵詞  Git,上,一些,修改,錯(cuò)誤,操作,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Git上一些修改錯(cuò)誤操作的命令使用技巧》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Git上一些修改錯(cuò)誤操作的命令使用技巧的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章