1/14 Git筆記(*刪除檔案 *修改commit紀錄*追加檔案到最近一次的 Commit)

可以看到 hello-git.html 這個檔案目前的狀態是 deleted。如果你確定這是你想做的,就可以把這次的「修改」加到暫存區:
git add hello-git.html

此時,他已經被加到暫存區了,我們可以利用commit來將這次的改變儲存到儲存庫(Repository)
git commit -m   commit

也可以利用 git 來幫我們砍檔案 git rm XXX

再用git status來查看,會發現我們不需要手動加到暫存區,git 會自動幫我們加到暫存區

即可有跟 git rm 同樣的效果,welcome.html 檔案已被標記為刪除記號並且放置在暫存區。

加上 –cached 參數:
不管是系統的 rm 或是 git rm 指令,都會真的把這個檔案從工作目錄裡刪掉,但如果只是「我不是真的想把這個檔案刪掉,只是不想讓這個檔案再被 Git 控管了」的話,可以加上 --cached 參數:








會讓我的test.html變成untracked files.
亦可利用Source Tree Stop Tracking來將檔案變成untracked files.
這樣就等同 git rm --cached 的效果,可以看到在暫存區有刪除檔案的標記,同時因為檔案已變成 Untracked 狀態,所以在檔案前面打上了一個問號標記:


直接改名
跟刪除檔案一樣,變更檔名也是一種「修改」,所以操作上其實也是差不多的:
$ mv change.html yoyo.html        # change.html 改成 yoyo.html
1/14 Git筆記(*刪除檔案 *修改commit紀錄*追加檔案到最近一次的 Commit)
rm xxx(file name)
可以看到 hello-git.html 這個檔案目前的狀態是 deleted。如果你確定這是你想做的,就可以把這次的「修改」加到暫存區:
git add hello-git.html

此時,他已經被加到暫存區了,我們可以利用commit來將這次的改變儲存到儲存庫(Repository)
git commit -m   commit

也可以利用 git 來幫我們砍檔案 git rm XXX


再用git status來查看,會發現我們不需要手動加到暫存區,git 會自動幫我們加到暫存區
即可有跟 git rm 同樣的效果,welcome.html 檔案已被標記為刪除記號並且放置在暫存區。


加上 –cached 參數:
不管是系統的 rm 或是 git rm 指令,都會真的把這個檔案從工作目錄裡刪掉,但如果只是「我不是真的想把這個檔案刪掉,只是不想讓這個檔案再被 Git 控管了」的話,可以加上 --cached 參數:


會讓我的test.html變成untracked files.
亦可利用Source Tree Stop Tracking來將檔案變成untracked files.
這樣就等同 git rm --cached 的效果,可以看到在暫存區有刪除檔案的標記,同時因為檔案已變成 Untracked 狀態,所以在檔案前面打上了一個問號標記:

直接改名


跟刪除檔案一樣,變更檔名也是一種「修改」,所以操作上其實也是差不多的:
$ mv change.html yoyo.html        # change.html 改成 yoyo.html
雖然只是改檔名,但對 Git 來說會被認為是兩個動作,一個是刪除 change.html 檔案,一個是新增 yoyo.html 檔案(變成 Untracked 狀態)。接著繼續使用 git add 指令把這些異動加至暫存區:


亦可以請git 幫我改名by 
git mv 原本的名字 改的名字
idk.html 改為 gitisnotcool.html


使用 SourceTree 的話,同樣是在檔案上按右鍵,選擇「Move」功能:
接著便會跳出一個對話框,輸入要改的檔名:


完成後,會在前面標記一個 R 字樣:


修改 Commit 紀錄:
「使用時機」:身為工程師,偶爾總是會遇上不太順心的客人或專案,心情不好的時候,在程式碼或 Commit 訊息裡「抒發」一下情緒也是很常見的,只是這要是讓客人看見了總是不好解釋。

  1. 使用 git rebase 來修改歷史。
  2. 先把 Commit git reset 拆掉,整理後再重新 Commit
  3. 使用 --amend 參數來修改最後一次的 Commit
12後面才會學到,今天先用3來學習


如果 —amend後沒有加-m,他就會將vim開啟讓你編輯文字。
如果是使用 SourceTree,請先點選左上角的 Commit 按鈕進行 Commit 畫面,然後在右上角的「Commit Options」選擇「Amend last commit」:

在下方的空格填寫好訊息,按下右下的 Commit 按鈕後就可修改。
雖然commit的檔案跟時間似乎是相同的,但是對git來說卻是重新commit一次,所以他的身分證也不一樣了><
如果要修改更早以前的commit,那就得用rebase,參閱https://gitbook.tw/chapters/rewrite-history/change-commit-message.html
請記得,雖然這只是改訊息,不管如何它就是修改了一次的歷史,所以請儘量不要在已經 Push 出去之後再修改,否則可能會造成其它人的困擾。
PUSH應該會出現在之後的筆記

留言

熱門文章