Git管理修正(取消跟蹤、合併commit)

本文總結了最近使用Git時候遇到的兩個問題:
1. 當將不必要跟蹤的文件加入到倉庫後如何處理?
2. 提交了多個功能相同的commit後如何處理?

總結經驗

  1. 在創建倉庫的一開始,就要設置號.gitignore文件,用於過濾掉不需要跟蹤的文件和文件夾
  2. 謹慎提交commit,確保每個commit中所有的改動都是跟同一個任務相關的。

我是怎麼解決上述兩個問題的

1. 移除對文件/文件夾的跟蹤,但不刪除

  • 使用命令git rm --cached ignore_target_file 刪除對某個文件的跟蹤
  • 新建.gitignore文件,使用下列規則添加要忽略的文件或者文件
    • 所有空行或者以註釋符號 # 開頭的行都會被 Git 忽略。
    • 可以使用標準的 glob 模式匹配。
    • 匹配模式最後跟反斜槓(/)說明要忽略的是目錄
  • 舉例,我的.gitignore文件內容如下
# 忽略.gitignore文件
.gitignore
# 忽略.idea/文件夾
.idea/
# 忽略target/文件夾
target/

執行移除,新建.gitignore文件之後,再次git status就可以看到,這些討厭的多餘文件已經不被跟蹤了。什麼樣的文件需要被忽略?編譯生成的文件夾,如target目錄;機器自動生成的,我們不會手動修改的隱藏文件,如.idea目錄;中間文件,例如java項目中的.class文件。

2. 合併多個相似的commit

  • git rebase -i HEAD~4
  • 將除了第一行(最老的那個commit)之外的行首的pick全部換成squash
  • :wq保存並推出
  • 修改最新的commit message即可

參考資料

  1. Git基礎–記錄每次更新到倉庫
  2. Git使用規範流程
  3. Git常用配置
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章