Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git/gitk显示文件夹的未知/无效sha1 id,但不是来自其父文件夹。_Git - Fatal编程技术网

Git/gitk显示文件夹的未知/无效sha1 id,但不是来自其父文件夹。

Git/gitk显示文件夹的未知/无效sha1 id,但不是来自其父文件夹。,git,Git,我有以下文件夹 Views/Shared/Base/ 我一直在开发布局的一部分 header.cshtml footer.cshtml mainNav.cshtml 因此,在某个时刻,我开始创建带有这些文件初始提交的“基本”文件夹(在与主文件不同的分支中)。最初的承诺交给了我们的主人,因为我们处于早期阶段,所以根本没有问题。让我们称之为提交,提交A 然后,我继续开发这些文件,为它们创建更多、更多的提交,并将它们提交给我们的主管,以便团队的其他成员能够从这些更改中受益。至少这是个主意。假设我创

我有以下文件夹

Views/Shared/Base/
我一直在开发布局的一部分

header.cshtml
footer.cshtml
mainNav.cshtml
因此,在某个时刻,我开始创建带有这些文件初始提交的“基本”文件夹(在与主文件不同的分支中)。最初的承诺交给了我们的主人,因为我们处于早期阶段,所以根本没有问题。让我们称之为提交,提交A

然后,我继续开发这些文件,为它们创建更多、更多的提交,并将它们提交给我们的主管,以便团队的其他成员能够从这些更改中受益。至少这是个主意。假设我创建了提交B,C,D

但上周,我们所有的团队都必须和我们的主人同步,这是强制性的。我继续开发,并创建提交E。但是我还没有把E带到master,今天我将我的分支(我是唯一一个使用该分支开发“基础”的人)与master同步,这样我就可以了解团队的所有更改,看看是否一切正常

尽管合并进展很快,但我惊讶地看到文件夹“Base”似乎是停留在提交A,而不是E,这是我最近的提交

起初,我认为团队中的某个人进行了一次非常非常糟糕的合并。但我没有找到这样的东西。评论和树(我通过gitk检查)没有显示这样的内容

最奇怪的是:

git的一个强大功能是,您可以检查文件夹或单个文件的历史记录,对吗

嗯,看看这个。使用gitk我检查了“视图”,并查找提交DE。当然,gitk找到了它们,并在“Views/Shared/Base”中显示了header.html、footer.html的提交

很酷,但这发生在我为基地做同样的事情时。。一旦我为“Views/Shared/Base”做了gitk,并查找提交D&E,gitk就向我显示了一个错误:“La id SHA1D/Ees desconocida”,我相信这个错误在英语中被翻译成“id SHA1D/E未知”或类似的东西

所以我不明白为什么我可以在父文件夹中找到提交,但不能在内部文件夹中找到提交

我不知道发生了什么,也不知道如何解决。我们的回购协议被破坏了吗

我们的回购协议被破坏了吗

首先,只需再次克隆该repo并查看
master
(和
Base/
内容)是否正常

今天我同步了我的分支(我是唯一一个使用此分支开发“基础”的人)

如果您是唯一一个在分支上工作的人,您应该在
master
上重新设置分支的基础,以便从最新的
master
内容中获益

git checkout myBranch
git fetch
git rebase origin/master

这应该会显示
Base/
和您的最新内容。

我在写这篇文章之前检查过(如果我没有提到的话,很抱歉),这是一个已经蔓延到所有领域的问题team@raulricardo21这不是问题:您仍然可以在新的本地回购上确保情况正确,然后在服务器上强制推送
myBranch
,确保团队根据
origin/myBranch
获取并重置他们的
myBranch
。是的,我进去了,我要试试。但事实是,我已经选择了我丢失并重新写入回购协议的变更。但我要寻找的答案是发生了什么,所以也许我们确实做错了什么,我们需要避免这种情况再次发生。