我已经为这个问题努力了几个小时。我的本地仓库在某种程度上缺少提交
jQuery.getJSON('https://ipinfo.io', function(data){
if(data){
if(data.country){
if(data.country.toLowerCase()=='us')
{
window.location.replace(window.location.href+"?location=us");
}
}
}
});
//works when page is not reloaded
document.addEventListener("DOMContentLoaded",
function() {
doSomething...
});
和
> git reflog expire --stale-fix --all
error: refs/tags/12.01.02 does not point to a valid object!
error: Could not read 95eeac3b5f441c9ebbd89508896c572e3eb17205
fatal: Failed to traverse parents of commit 6c24f6ea7c0452e70dea6332c6959dad6c71305f
我一直在解决有关问题的问题。具体来说,我遇到了this answer:
您可以尝试的第一件事是从备份中还原丢失的项目。例如,查看是否有保存为.git / objects / 98 / 4c11abfc9c2839b386f29c574d9e03383fa589的提交的备份。如果是这样,您可以将其还原。
因此,我发现提交在GitHub上的远程目录中。因此,我在另一个目录中进行了新克隆,但是$ git fsck --full
Checking object directories: 100% (256/256), done.
Checking objects: 100% (159800/159800), done.
error: refs/tags/12.01.02: invalid sha1 pointer 95eeac3b5f441c9ebbd89508896c572e3eb17205
error: HEAD: invalid reflog entry 95eeac3b5f441c9ebbd89508896c572e3eb17205
大部分为空。有没有一种方法可以仅一次提交就重新生成对象文件?
答案 0 :(得分:4)
如果您发现该提交在远程中,那么最简单的方法可能是获取该提交(这还会拉入任何相关对象,例如提交的内容或构成该提交历史的其他提交)提交)。
您可能不能取特定直接从远程提交,因为任意提交ID的不普遍接受作为参数来获取。但你做了一个本地克隆,所以你可以
$ git branch my_temp_branch
$ cd path/of/original/clone
$ git remote add temp file://localhost/path/of/new/clone
$ git fetch temp my_temp_branch
结帐应使您处于分离的HEAD状态,这将打印出冗长的警告和说明;但它应该成功。如果错误,则可能是有关提交在远程(和/或新克隆)中的某些观察结果有误。
假设结帐确实有效,那么您会
#Currently trying with 10, 2, 2, 6, giving a total pop of 10
organisms = int(input("Enter the initial number of organisms:"))
rateOfGrowth = int(input("Enter the rate of growth [a real number > 0]: "))
numOfHours = int(input("Enter the number of hours to achieve the rate of growth: "))
totalHours = int(input("Enter the total hours of growth: "))
totalOrganisms = organisms
while numOfHours >= totalHours:
organisms *= rateOfGrowth
totalOrganisms += organisms
numOfHours += numOfHours
print("The total population is ",totalOrganisms)
(该命令序列有很多变体;该命令使用了足够熟悉的语法,即使没有其他测试实例在我面前,我也可以肯定地说我已经正确了,尽管其他方式可能更简洁)
答案 1 :(得分:2)
来自其他任何地方的新克隆都将在打包文件中包含对象,如果它完全具有对象的话。有关从打包文件中提取一个打包对象的方法,请参见How do I unpack a single git object?。
您可能会发现,一旦你的第一个丢失的对象,你需要更多的对象。这在技术上是可以拥有一个对象不止一次(例如,在几个包),只要查找在具有任何包装的对象,并使用结果得到你同样的位在任何其他包,展望了同一个对象也有它。如果存储库是相关的,这应该是这样,所以你能不能别再包文件到“坏”回购添加的所有的它的对象(或许有些多余)。
如果,当你得到的Git是与“坏”克隆OK,这是一个好主意,它再克隆到一个新的克隆(你可能想使用git clone --mirror
此)。>
答案 2 :(得分:0)
您可以使用git fetch
从遥控器获取特定对象。
尝试运行:
git fetch origin 95eeac3b5f441c9ebbd89508896c572e3eb17205
另一个角度是:git fsck
的结果表明,唯一失败的是您的 local tag 12.01.02
是无效的。
git tag -d 12.01.02
git fetch origin 12.01.02