我有一个源代码树(一个PHP应用程序),它在某个时间点从一个git仓库中rsynced。这是哪个版本?比较裸露的源代码树和存储库
我可以在回购库中找到匹配的版本(源码树中存在的最后一个提交)吗? - 如果对这个导出的未跟踪版本的源代码树进行一些小的修改会怎么样?
如果术语定义正确,应该可以。有没有一种工具或内建的git工具来解决这个问题?
我有一个源代码树(一个PHP应用程序),它在某个时间点从一个git仓库中rsynced。这是哪个版本?比较裸露的源代码树和存储库
我可以在回购库中找到匹配的版本(源码树中存在的最后一个提交)吗? - 如果对这个导出的未跟踪版本的源代码树进行一些小的修改会怎么样?
如果术语定义正确,应该可以。有没有一种工具或内建的git工具来解决这个问题?
可能有更好的解决方案,但您可以将导出的源代码树复制回git工作目录(无需提交),然后与for循环中的以前版本进行比较。下面是一个关于如何使用bash脚本的示例:
for ((i=1; i<100; i++)); do
echo $i
git diff --shortstat HEAD~$i
done
然后查找最小的更改次数。
我尝试了一个我的项目。我做
rsync -avz [GIT_REPO_BARE] local-copy
然后我cd
本地拷贝和我运行一个git log
。幸运的是,我有一些提交没有推送到远程git回购,所以我推他们。然后我只是寻找提交我以前在git log
发现的提交ID。这是你想要的吗?
要比较的源树不受版本控制。从'git log'我假设你也rsynced .git目录(所以在你的版本中它是版本控制的)。 – vbence 2013-05-06 08:15:55
@CharlesB我有一个非版本控制的源代码树。另外:devconsole的答案似乎比那里的任何答案都更加资源友好。 - 虽然我还在等待一个可能不那么强悍的解决方案。 – vbence 2013-05-06 08:56:50
重复也处理非版本控制的源代码树:)并且devconsole的答案与重复的接受答案非常相似。我不认为你可以有非暴力解决方案 – CharlesB 2013-05-06 10:36:16