我目前是一个大型开源项目的一部分。我被分配从事一些功能,我想为每个新功能创建一个分支,完成后,将其与master分支合并。
为了在不同的机器上工作,我移动了很多东西,因此决定将功能分支推送到我的私有存储库,例如原始存储库为origin
,私有存储库为private
。
当前,我克隆了该项目,并从master
,feature1-branch
和feature2-branch
创建了两个分支。当我尝试将分支推送到private
存储库时,出现错误,因为该项目包含的文件超过+ 100mb。 (Github的最大文件大小限制)
我将.gitignore
更改为忽略大文件,但是似乎由于它们是在先前/历史记录提交中提交的,因此它们仍会被推送并导致错误。
是否可以在不提交所有历史记录提交的情况下仅推送新提交中的文件?我猜这不是一个选择,因为如果我尝试在另一台机器上发出拉取请求,这将导致合并拒绝(我相信不能合并不同的历史记录)
我不是Git专家,所以我正在寻找有关处理此类情况的最佳方法的建议?
P.S当前,我只是确保将更改后的文件复制并放置到云存储中,然后将它们来回复制到另一台计算机上的项目中,但这是乏味且不切实际的工作。
预先感谢,加油。
答案 0 :(得分:1)
要取消跟踪特定文件,请git rm --cached filename
。 (这看起来就像您在私人存储库中删除了该文件;如果不需要,请参见https://stackoverflow.com/a/40272289/6951428)
如您所见,ignored
和untracked
文件之间是有区别的。简而言之,忽略将避免跟踪和暂存文件,除非您以其他方式明确告诉git(例如,通过git add -f
或在您添加到gitignore之前已经跟踪了这些文件)
一个gitignore文件指定Git应该忽略的故意未跟踪的文件。 Git已经跟踪的文件不受影响;有关详细信息,请参见下面的注释。 -https://git-scm.com/docs/gitignore