例如,我想要研究 AngularJS 的代码,所以我只需使用
由于我只能在自己的存储库上进行修改,有时原始存储库可能会有一些我不想要的目录,例如某些项目可能在存储库中有 node_modules。在这里,我以脚本文件夹为例,我应该使用本地存储库上的 filter-branch 进行移除操作,但是在运行
在 filter-branch 操作之后,git pull 会出现错误,并且很难管理冲突。
那么,如何处理没有很好管理的存储库,以至于我必须使用 filter-branch 进行删除操作?问题是如何在 filter-branche 操作之后获取更新,有没有一个好的解决方案呢?
git clone https://github.com/angular/angular.git
进行克隆。为了模拟更新情景,我会使用 git reset --hard HEAD~10
来丢弃最近的提交。在重置之后,git pull 很好用,因为它可以轻松地从远程仓库获取更新。但是,如果使用 filter-branch,则 git pull 就很麻烦,我的问题是如何解决这种困境。由于我只能在自己的存储库上进行修改,有时原始存储库可能会有一些我不想要的目录,例如某些项目可能在存储库中有 node_modules。在这里,我以脚本文件夹为例,我应该使用本地存储库上的 filter-branch 进行移除操作,但是在运行
git filter-branch --tree-filter "rm scripts -rf"
后,从原始存储库中获取更新就会出错。在 filter-branch 操作之后,git pull 会出现错误,并且很难管理冲突。
git pull
将无法确定如何合并更改。就 Git 而言,您的本地副本和远程副本没有共同的历史记录。如果可能的话,保持提交哈希值非常重要。 - Chris