分类目录归档: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