我有一个GitHub存储库,主要存放.tex
个文件,并使用Makefiles编译所有文件以创建.pdf
s。在此存储库中,.gitignore
文件用于忽略与此相关的一些编译文件,尤其是.pdf
本身。现在,我还有一些不是编译.tex
文件的结果的文件,因此git
不应忽略它们。我最近在minted
文件中添加了一些代码(使用.tex
包),该代码创建两种特定类型的编译文件,即.pygstyle
和.pygtex
。这些文件是我不想保留在存储库中的文件,因此我已经将它们添加到.gitignore
中了-在已经将它们添加到上一次提交中之后:(。
我想找到我要键入的命令,以便以此分支为基础建立基础,而不会从源代码管理中删除.gitignore
中的所有文件,因为其中有些{我想保留的{1}}个文件,但是我上面提到的编译文件应该忽略。
我尝试重新建立正常的基础,只是找出那些无法忽略的丢失文件;从那时起,我一直漫不经心地重新建立新的分支机构,但几乎没有成功。
理想情况下,将有一种方法可以将.pdf
文件追溯应用到引入“顽皮文件”的提交中,而无需删除手动添加的其他文件以绕过.gitignore
。
我曾考虑过不使用变基(例如,简单地将.gitignore
应用于所有文件的子集),但是我想保持整洁并改用.gitignore
。
答案 0 :(得分:1)
如果您的顽皮文件很小,我建议您简单地git rm
对其进行归档并提交结果。从那时起,.gitignore
将可以根据需要工作,因为文件将不再存在于您将要处理的提交中。
如果顽皮的文件很大,则可以使用git filter-branch
来重写没有这些文件的历史记录。如果您选择以下路线,则此问题会有所帮助:How to remove/delete a large file from commit history in Git repository?
有关其他信息,.gitignore
文件仅影响git add
以及将沙箱的当前状态与当前提交进行比较的操作中发生的情况。重新设定基准时,您要让Git重新应用给定的提交及其所拥有的文件和补丁,(默认情况下)。您必须编辑提交以从其中删除文件,上一段中链接的问题说明了如何手动或通过git filter-branch
进行操作。