考虑以下情况:
我有一个项目的源代码(几个文件夹和文件)。不幸的是,源代码不受版本控制。
然而,这个项目有一个远程 git 存储库。
如何在 git 存储库中找到与我的项目修订相对应的提交?
我的强力方法是:克隆存储库,在不同的提交处签出并将签出的文件与我的文件进行比较。
有没有更优雅的方式来查找提交?
我认为这两种明显的方法不可用(查看版本/自述文件,或在下载的 tar.gz 文件中查找版本号)。
你可以尝试以下方法。它会明显更快,因为它避免了结账。仅当您没有以任何方式修改源代码时它才有效。
-
git init
一个新的存储库
-
git add
整个源代码副本,然后git commit
-
git rev-parse HEAD^{tree}
获取代码对应的tree-SHA
Now git clone
远程,然后在该存储库中执行如下脚本
# This should be the tree-SHA given by the above
needle=ABCDEF12345
# you could limit this to just HEAD or a branch if you had a guess
for rev in $(git rev-list --all)
do
if [ $(git rev-parse ${rev}^{tree}) = ${needle} ]
then
echo "Sha ${rev} matches"
fi
done
一旦你有了匹配的 SHA,你可以尝试使用以下命令获取它的版本:git tags --points-at
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)