嘿,我想知道git中是否有办法制作特定文件的副本,并在提交时使用修订号重命名(如果进行了更改)。
例如,如果我有一个名为'code.js'的文件,当我对其进行更改并提交时,我希望能够在保留原始文件的同时使其成为'code-1.0.0.js'(或者最后一份)。
我知道手动做这不是什么大不了的事,只是想知道是否有更好的方法使用git。
答案 0 :(得分:2)
您可以通过可以在.gitattributes
文件中进行版本和注册的脚本自动生成该文件。
这意味着,在git checkout
上,code-1.0.0.js
将自动生成(作为私有文件,而不是在git repo中版本化),用于本地回购所有者使用。
版本可以是computed from a git describe
。
git describe --abbrev=4 HEAD
答案 1 :(得分:0)
您可以使用git hooks。使用此内容在文件夹pre-commit
(位于存储库根目录下)中创建名为.git/hooks
的文件
#!/bin/sh
cp -f code.js code-1.0.0.js
git add code-1.0.0.js
然后,当您提交时,code.js
的内容将被复制到code-1.0.0.js
,并且该文件也将被提交。
此pre-commit
脚本处于bash状态,因此您可以根据需要对其进行改进。例如,您可以增加文件名中的版本号。
然而,在文件名中嵌入版本号的概念确实感觉它违背了Git的内容。如果您想要HTTP缓存的文件版本,那么最好使用内置于Web开发环境或Web服务器中的某些功能。