gpt4 book ai didi

进行部分克隆时,Git 子树未正确使用 .gitignore

转载 作者:太空狗 更新时间:2023-10-29 12:52:52 26 4
gpt4 key购买 nike

我是一名研究生,有许多脚本、bibtex 中的引用书目数据、latex 中的论文草稿、open office 中的演示文稿、scribus 中的海报以及图形和结果数据。我想把所有的东西都放在一个项目中进行版本控制。然后,当我需要处理诸如引用书目数据之类的部分时,我想 check out 该子目录,根据需要对其进行修改,然后将其 merge 回来。我希望能够将一个版本 check out 到我的家用计算机,以及一个与我的工作计算机不同,并分别对每个计算机进行更改,并最终将它们 merge 回来。我还希望能够从这个大项目中 check out 一段代码,并将其与版本控制一起导入到一个单独的项目中。如果我可以更改,我希望能够将它们 merge 回原始项目。

根据我的理解,git subtree 可以做到这一点。

http://github.com/apenwarr/git-subtree

有一个例子与我正在尝试做的事情一致:

http://psionides.jogger.pl/2010/02/04/sharing-code-between-projects-with-git-subtree/

假设我的项目的主干包含目录:(bib bin cfg data fig src todo)。

当我使用

git subtree split -P bib -b export
git checkout export

我得到一个 bib 目录,加上所有应该被忽略的文件 或基于 .gitignore 被认为是二进制文件,例如 src 目录和其中以波浪号或 ./结尾的所有内容数据目录。

dwickrama@DWwork:~/research/trunk$ ls * -r
biblography.bib JabRef

src:
script1.sh~ README~ script2.sh~
script3.sh~ script4.R~ script5.awk~
script5.py~

cfg:
cfgFile1.ini~ cfgFile2.ini~ cfgFile3.ini~

bin:
bigBinaryPackage1 bigBinaryPackage2

dwickrama@DWwork:~/research/trunk$

我的.gitignore文件如下:

*.doc diff=word
*.tex diff=tex
*.bib diff=bibtex
*.py diff=python
*.eps binary
*.jpg binary
*.png binary
./bin/* binary
*~

如何防止这种情况?

最佳答案

在我看来,所有那些被忽略的文件实际上并不在您的存储库中 - 它们只是您之前 checkout 时留下的。

由于您从原始项目中提取了一个特定的子树,您的 .gitignore 文件不再存在,因此这些文件不再被“忽略”,因此您将在 git 状态中看到它们。但它们也不属于您的 repo 协议(protocol);他们只是坐在那里。

尝试使用“git clean”来清理它们。

关于进行部分克隆时,Git 子树未正确使用 .gitignore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2503816/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com