dev*_*ium 5 git version-control
所以我有这个项目,起初我做了一个
git add .
Run Code Online (Sandbox Code Playgroud)
所以我可以开始工作,而不是被哪些文件控制版本或什么文件所困扰.
当然,这很痛苦,因为在每次提交之间我通常只更改3-5个文件,所有构建文件(.class,.html,.xml等)都完全重新生成,这意味着
git add .
Run Code Online (Sandbox Code Playgroud)
将添加数百个文件,而不是我真正更改的3-5个文件.
我知道我可以将所有不需要的文件添加到.gitignore文件中.我想做的是,如果有办法追溯这样做.我想摆脱所有本来不应该提交的文件.
是不是可以用git做到这一点?如果有,怎么样?
是的,你可以使用git filter-branch.
--index-filter <command>
Run Code Online (Sandbox Code Playgroud)
这是重写索引的过滤器.它类似于树过滤器,但不检查树,这使得它更快.经常使用
git rm --cached --ignore-unmatch …,请参阅下面的示例.对于毛病例,请参阅git-update-index(1).
举个例子:
git filter-branch \
--index-filter 'git rm --cached --ignore-unmatch filename' \
--tag-name-filter cat \
-- --all
Run Code Online (Sandbox Code Playgroud)
将tag-name-filter有重写你的标签一样,所以你不会失去他们.
小心重写公共历史.您可能会让其他人不可能/难以保持最新或贡献.
| 归档时间: |
|
| 查看次数: |
1673 次 |
| 最近记录: |