我正在与该国另一方的另一位开发人员合作,他们是我们项目的负责人,并且没有使用正式的版本控制系统。在我的结尾,我正在跟踪git中的所有代码。我最近开始为主项目做贡献,并希望能够跟踪其他开发人员的更新。
当我收到更新后的代码时,通常采用zip文件的形式。如果我只是将文件解压缩到我的git工作文件夹中,git认为每个文件都已更改,大概是因为统计信息已更改。
我希望看到的是一种方法,我可以将新代码与我的工作副本一起解压缩,并仅合并更改。最好的方法是什么?由于它是Powerbuilder项目,因此大多数文件都是二进制文件。
谢谢!
答案 0 :(得分:7)
二进制文件如果存储在Git中,必然会创建一个新版本(即在下次提交时要考虑)。
所以:你需要那些二进制文件,还是可以重建它们?
对于源代码,在Git,SHA1 is king和中,因为文件的日期(时间戳)涉及其计算,因为外部文件集可能完全不同在其内容(更多文件,临时文件,应该忽略的文件,......)中,最好:
感谢rq指出时间戳不是SHA1计算的一部分。 只有:
是SHA1 computation的一部分:
(来源:alexgirard.com)
但是,当将外部管理的大量文件导入git存储库时,您可能会冒险将新文件添加到git管理的目录中,更改其内容,从而更改其SHA1密钥,即使旧的git管理文件未更改。登记/> 这意味着如果那些新文件只是临时文件或应该忽略/重新创建/重新生成的文件,那么树中的很多更改都是人为的。
(来源:alexgirard.com)
上述过程只是确保以外部方式检测外部文件集与git管理的文件集之间的变化,并判断是否必须是否是git工作目录的一部分。
答案 1 :(得分:1)
查看contrib/fast-import/import-zips.py
是否符合您的要求。
答案 2 :(得分:1)
这个,不完全确定一个好主意,是我在几乎相同的情况下想做的事情:
基本上为他们维护回购怎么样?
您收到的任何更改都会被放入他们的仓库并提交。然后在需要的时候将他们的仓库合并到您的仓库中?