系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當(dāng)前位置:系統(tǒng)之家 > 系統(tǒng)教程 > Linux系統(tǒng)撤銷操作

Linux系統(tǒng)如何在Git里撤銷操作(4)

時(shí)間:2015-07-01 14:48:53 作者:zhijie 來(lái)源:系統(tǒng)之家 1. 掃描二維碼隨時(shí)看資訊 2. 請(qǐng)使用手機(jī)瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20150701/51938.html 手機(jī)查看 評(píng)論

  修復(fù)更早期的 commit

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

  方法: git commit --squash 《SHA of the earlier commit》 和 git rebase --autosquash -i 《even earlier SHA》

  原理: 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 消息。

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

Linux系統(tǒng)如何在Git里撤銷操作

  在使用 --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è)文件的追蹤呢?

  方法: git rm --cached application.log

  原理: 雖然 .gitignore 會(huì)阻止 Git 追蹤文件的修改,甚至不關(guān)注文件是否存在,但這只是針對(duì)那些以前從來(lái)沒有追蹤過的文件。一旦有個(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ì)再看見這個(gè)文件,也不會(huì)再偶然提交該文件的修改了。

  在Linux系統(tǒng)中如何在Git里撤銷操作的教程了,Git中命令有很多,但是撤銷操作的命令一直是Git命令中最重要的。

標(biāo)簽 撤銷操作

發(fā)表評(píng)論

0

沒有更多評(píng)論了

評(píng)論就這些咯,讓大家也知道你的獨(dú)特見解

立即評(píng)論

以上留言僅代表用戶個(gè)人觀點(diǎn),不代表系統(tǒng)之家立場(chǎng)

其他版本軟件

熱門教程

人氣教程排行

Linux系統(tǒng)推薦

掃碼關(guān)注
掃碼關(guān)注

掃碼關(guān)注 官方交流群 軟件收錄