我可以将以前的版本号改装为Git归档吗?

我可以将以前的版本号改装为Git归档吗?,git,version-control,github,Git,Version Control,Github,假设我有一个开源项目,它有四个版本,1.0、1.1、1.2和2.0,可以从我的网站上获得tar.gz文件,其中不包括任何版本控制系统的数据 我是否可以在GitHub上创建一个反映上述四个版本并保留编号的存储库,以便在我的网站上看到该软件并想要1.1(或tip)的人可以轻松地从GitHub中提取该软件?您可以使用git标记,每个版本一个。基本知识可以找到。然后,人们可以决定是撤销整个回购协议,还是只撤销一个标签。从现有tarball创建带标签的Git归档 是和否。Git不会像您认为的那样在内部跟踪

假设我有一个开源项目,它有四个版本,1.0、1.1、1.2和2.0,可以从我的网站上获得tar.gz文件,其中不包括任何版本控制系统的数据


我是否可以在GitHub上创建一个反映上述四个版本并保留编号的存储库,以便在我的网站上看到该软件并想要1.1(或tip)的人可以轻松地从GitHub中提取该软件?

您可以使用git标记,每个版本一个。基本知识可以找到。然后,人们可以决定是撤销整个回购协议,还是只撤销一个标签。

从现有tarball创建带标签的Git归档 是和否。Git不会像您认为的那样在内部跟踪修订,但是您当然可以使用它来创建与当前tarball匹配的归档。例如:

git init

# Unpack version 1.0
tar xvfz /tmp/foo.tar.gz
git add .
git commit -m 'Add version 1.0'
git tag v1.0

# Remove files with GNU find before unpacking next archive.
find . -name .git -prune -o -exec rm {} +

然后,您可以依次对其他存档版本执行相同的操作。添加完版本后,跳过“查找”命令。然后,当您创建标签时,每个标签都会使用您创建的标签名称作为Git归档文件提供。

谢谢。我正在阅读您链接的那本书,以便从整体上理解Git,但是您提供的delete的find调用不是消除了对Git状态的所有认识吗?你是说一个更像“发现”的调用吗-打印| grep-v\\.git | xargs rm'?@JonathanHayward no。有多种方法可以做到这一点,但是上面的GNU find命令删除了除.git目录之外的所有内容。您可能还希望使用find来保存其他东西,如.gitignore、.gittributes或.gitmodules,这些东西通常不存储在存档中,但这超出了您最初问题的范围。