iT邦幫忙

2021 iThome 鐵人賽

DAY 11
1

延續上篇的說明,在 Git 的世界,任何動作對 Git 來說都可以視為一個「修改」的動作。因此這篇要介紹的 mv 指令概念都是相同的。

複習上篇的刪除檔案 git rm

刪除一個檔案 > git rm (暫時區) > git commit(儲存區)
git rm - 告知 git ,我們要「刪除」的檔案有哪些

相同概念套用到更改檔名 git mv

重新命名一個檔案 > git mv [舊檔名]+[新檔名](暫時區) > git commit(儲存區)
git mv - 告知 git ,我們要「重新命名」的檔案有哪些

一樣要注意一個觀念,使用 git mv 指令時,檔案需要是已經被追蹤的檔案狀態,存在暫時區中


重新命名檔案 git mv

mv 為 move 的意思

🛠 實際操作

直接更改檔名 mv

  1. 先確認資料夾內有我們將要更改檔名的檔案,並且確定已放在暫存區

    https://ithelp.ithome.com.tw/upload/images/20210925/201410100tfbh4kWjO.png

  2. 使用 mv 指令,並加上原本的檔名及要更改的檔名

    $ mv before.html after.html # 把 before.html 變成 after.html
    // mv + [舊檔名] + [新檔名]
    

    https://ithelp.ithome.com.tw/upload/images/20210925/20141010kJxyogvJ93.png

  3. 先讓我們查看目前檔案狀態 - git status

    https://ithelp.ithome.com.tw/upload/images/20210925/20141010XCKJNgjC5K.png

    • before.html - Changes not staged for commit (deleted)
    • after.html - Untracked files

    從訊息回饋來看,可以看到單純的變更檔名對 Git 來說會是兩個動作:刪除 → 新增

    狀態為已更改,表示原本提交的 before.html 經刪除動作後,被丟回工作目錄(WD),隨後又新增了一個名字為 after.html 的檔案。此時的檔案是 Untracked files 狀態,並還沒有被 Git 追蹤,因此下一步我們要使用 git add 指令將檔案丟至暫存區。

  4. 輸入 git add 指令將上述異動存至暫存區

    $ git add --all # 一次加入所有檔案
    -A 與 --all 相同
    
  5. 使用 git status 指令查看檔案狀態

    https://ithelp.ithome.com.tw/upload/images/20210925/20141010aMxg6pptxy.png

    此時的檔案狀態為:Changes to be committed(renamed)

    在第三步驟我們看到的兩種狀態(Changes not staged for commit / Untracked files)都一口氣變成 Changes to be committed 狀態,且檔案內容沒有變動,因此 Git 可以推測出這一次的動作只是更改檔名,所以狀態為 renamed

  6. 最後輸入 git commit -m 指令提交至儲存庫即可

    https://ithelp.ithome.com.tw/upload/images/20210925/20141010T4EhPLHIvc.png

    回饋裡除了基本的分支、效驗碼、紀錄訊息,也可以看到我們這一次做了怎麼變動:rename before.html => after.html


請 Git 幫忙更改檔名 git mv

  1. 我使用終端機在 git_practice 資料夾裡新增一個 before.html 的檔案,並且使用 git add 指令將它加入暫存區。

    $ git touch before2.html # 新增一個 before2.html 的檔案
    $ git add . # 將 before2.html 加至暫存區
    $ git status # 查看檔案狀態
    

    https://ithelp.ithome.com.tw/upload/images/20210925/20141010AEwu9scY9z.png

    https://ithelp.ithome.com.tw/upload/images/20210925/20141010WoLKSoQgWt.png

    此時檔案狀態為 Changes to be committed(new files) ,位於暫存區。

    記得一個觀念就是 git 要做修改的動作時,檔案都是需要為被追蹤的狀態

  2. 使用 git commit 將檔案提交至儲存庫,提供一次版本紀錄。

    $ git commit -m"訊息記錄" # 將檔案提交至儲存庫
    
  3. 接下來可以使用 git mv 指令將我們想要重新取名的檔案改成新的名字

    $ git mv before2.html after2.html # 把 before2.html 變成 after2.html
    // git mv + [舊檔名] + [新檔名]
    

    https://ithelp.ithome.com.tw/upload/images/20210925/20141010bwqNKrCi4J.png

    可以發現檔名已經變動成 after2.html ,接下來使用 git status 查看狀態

  4. 輸入 git status 指令查看狀態

    https://ithelp.ithome.com.tw/upload/images/20210925/20141010FLbN7KWmyu.png

    這時狀態為:Changes to be committed (renamed)→ 重新命名

  5. git commit提交檔案至儲存庫,整個流程即完成

    https://ithelp.ithome.com.tw/upload/images/20210925/20141010Iu53snGUu1.png

⚠️ 在第二步驟如果沒有先提交版本,直接更改檔名的話,Git 會認為依然只是新增一個檔案,沒有變更動過。


以下範例還沒 Commit 就直接更改檔名,後用 git status 指令查看狀態。

https://ithelp.ithome.com.tw/upload/images/20210925/2014101049VRY7rsM4.png

第一區塊 - 新增一個 before.html 檔案,git add 加至暫存區,使用 git status 查看狀態。

→ 狀態顯示: Changes to be committed(new file)

第二區塊 - 輸入原本更改檔名的指令 git mv before2.html after2.html 並查看狀態

→ 狀態顯示: Changes to be committed(new file)

第三區塊 - 將檔案提交到儲存庫

→ 變更動作顯示: **create** mode 100644 after2.html

因此我們可以看出,新建檔案後如果沒有先提交 commit 的版本,他的狀態對 Git 來說都是一樣的。「新增」一個檔案。


上一篇
Day10|【Git】檔案管理 - 刪除檔案 git rm
下一篇
Day12|【Git】檔案管理 - 忽略檔案 .gitignore
系列文
【Git】從零開始學習 Git - 30 天的學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言