分類目錄歸檔:Git

git 常用操作

  • 用git來管理現有項目:
    git init

  • 使git跟蹤項目中的文件或添加文件到下一次提交中:
    git add <files>

  • 提交所做的更改:
    git commit -m '<commit explanation>'

  • 跳過暫存區域,直接把已經跟蹤過的文件暫存下來一併提交:
    git commit -a -m '<commit explanation>'

  • 查看當前項目中文件的狀態:
    git status

  • 查看尚未暫存的文件更新了哪些部分(工作目錄中當前文件和暫存區域快照之間的差異):
    git diff
    注意git diff本身只顯示尚未暫存的改動,而不是自上次提交以來所做的所有改動。

  • 查看已暫存的將要添加到下次提交里的內容:
    git diff --cached (or git diff --staged)

  • 要從

Read the rest

git: remove big files in historical commits

最近git push一直提示文件太大,無法push,想到應該是自己之前不小心git add *把可執行文件什麼的也加入跟蹤列表了,於是就想把它們從歷史commits中刪除,步驟總結如下:

  1. 查看歷史提交中有哪些非源代碼文件,然後把它們記錄下來:
    git log --stat
  2. 刪除歷史提交中的非源代碼文件:
    git filter-branch --tree-filter 'rm -f non_code_files' HEAD
  3. 如果步驟2中漏掉了某些大文件,則可以再執行2中的命令,不過要加一個參數-f:
    git filter-branch -f --tree-filter 'rm -f non_code_files_left' HEAD
  4. 最後把本地提交強制push到遠端:
    git push -f
Read the rest