git push-其中';我的提交哈希-git日志未显示在历史镜像存储库中

git push-其中';我的提交哈希-git日志未显示在历史镜像存储库中,git,github,git-commit,git-log,git-hash,Git,Github,Git Commit,Git Log,Git Hash,我是从GIT存储库(最新版本)克隆的。此时,存储库中的最新提交是:a10cb09 我在我的微型包装器脚本中使用以下命令(其中我将变量r=传递的第一个参数(对于repo name akaansible)进行克隆: git clone git@github.com:mycompany/${r}.git 并做了一些更改,并执行了以下简单步骤:(即进行更改、添加文件/文件夹、提交和推送),我得到了一个新的提交哈希a08c263(short) 及 PS:如果我对mycompanyrepo组下的其他存

我是从GIT存储库(最新版本)克隆的。此时,存储库中的最新提交是:
a10cb09

我在我的微型包装器脚本中使用以下命令(其中我将变量
r
=传递的第一个参数(对于repo name aka
ansible
)进行克隆:

  git clone git@github.com:mycompany/${r}.git
并做了一些更改,并执行了以下简单步骤:(即进行更改、添加文件/文件夹、提交和推送),我得到了一个新的提交哈希
a08c263
(short)

PS:如果我对mycompanyrepo组下的其他存储库执行相同的步骤,并且如果我遵循类似的步骤,所有这些repo都会在github中成功提交/推送更改

更新:我的一个浏览器页面仍处于打开状态。在我执行提交+推送后,我能够看到我提交的更改(新哈希
a08c263
作为最高回购级别的最新提交)。当我单击它时,它打开了这个附加的浏览器页面,在那里我可以看到完整的哈希以及文件夹/文件。如果我访问打开的浏览器URL进行提交,它仍然在那里(因此Git确实保存了一些内容),但单击存储库的根级别,即
ansible
,最新的提交不是我的提交+推送(新哈希)但它将
a10cb09
列为最新的一个(根据快照,它是我新生成的哈希的父哈希)。请参见此处:

这就带来了主要的问题:

  • 如果我没有打开此浏览器页面,那么我如何获得长哈希和我的文件夹/文件(内容)?

  • 如果我从github.com/mycompany/ansible(repo)克隆,它是ansible存储库的镜像,实际上托管在Phabricator中(实际的原始存储库克隆URL与我在上面的小脚本中使用的不同),那么我应该使用什么命令/选项将我的新更改推送到原始Phabricator
    ansible
    repository?

  • 如果commit+push在我的末尾完成了,为什么
    git log
    和其他类似的
    git
    命令没有显示关于我的新哈希的任何信息

  • 访问该链接仍然有效,会显示我提交的文件/文件夹,但如果单击Github中的根存储库,它不会显示我提交的最新版本

    这意味着:

    • 远程回购的默认分支不是主分支
    • 或者某个挂钩(接收后?)将头部设置或重置为不同的SHA1
    我克隆的这个ansible repo没有托管在github.com上。在我的例子中,ansible repo托管在Phabricator中,并镜像到github.com(从我克隆的地方)

    这可以解释重置的原因

    最大的担忧是如何从a08c263提交中获取我的文件夹/文件返回到我的工作区。git日志或git rev parse没有显示任何内容/抛出错误,因为根据git,该哈希不存在

    确定:从另一个本地文件夹中的github克隆,将以前的克隆文件夹添加为远程repo,获取并选择您的提交:

    git clone https://github.com/... newfolder
    cd newfolder
    git remote add old ../path/to/first/clone
    git fetch old
    git cherry-pick a08c263
    git push
    

    但是您需要确保您有权返回GitHub repo。

    您有没有可能推送到源站而不是自己的存储库?因为您没有定义推送到什么,它将默认为“源站主机”。什么是源站?
    git remote-v
    @Christia但是,为什么提交甚至不会在本地显示n日志?张贴
    git reflog
    please@Christia我在我的帖子中添加了这些细节。我的意思是,我为其他存储库执行这些步骤,它们每次都显示我的提交。
    ansible
    repo也作为其他repo的兄弟repo,但同样的步骤变成了上述问题。为了测试,我尝试重新对2个repo执行另一个测试change/add/commit/push,其中一个得到了我的更改,而
    ansible
    再次没有。如果源代码不正确,那么它就不应该向我显示最后一个提交散列(在
    git push
    输出为
    a10cb09..a08c263
    右侧)?还添加了
    git reflog
    输出。我同意Tim B.OK,这就是我发现的。
    mycompany
    repo group在github.com中有许多存储库(ansible就是其中之一)。但是,所有其他回购协议都托管在github.com上,但我克隆的
    ansible
    repo不托管在github.com上。
    ansible
    repo在我的例子中托管在Phabricator中,并镜像到github.com(从我克隆的地方)现在,阅读更多的
    git
    帮助,看起来,如果我做了
    git推送--mirror
    ,那么它就会工作(?),现在,我如何使用
    a08c263
    散列重新获取相同的文件夹/文件,并再次尝试
    git push--mirror/-all
    ,而不进行任何返工。我同意你的结论。如果Github链接(仍然显示我的完整新散列、文件夹和文件内容)仍然有效,那么为什么在命令行(终端窗口)上,我执行git提交+推送的地方没有显示有关新哈希的任何信息,而git显示提交URL的信息。@ArunSangal在您提交的第一个本地repo中
    [master a08c263]
    ,git状态向您显示了什么?
    在分支母版上您的分支是“origin/master”的最新版本。没有要提交的内容,正在进行树清理
    可能是因为我已经推送了更改,所以推送的内容没有新内容,或者我刚刚删除了整个repo(即,是否将新的git克隆到同一文件夹结构)@ArunSangal所以我想git log-1没有显示您最近的提交(考虑到它是“p-to-datewith'origin/master'”,这似乎是合乎逻辑的)。你能在
    git获取后检查相同的
    git状态吗?
    ?你能看到你的提交有
    git日志--all--branchs--oneline--decoration--graph
    ?是的,上面多彩的git log命令没有显示
    $ git remote -v
    origin  git@github.com:mycompany/ansible.git (fetch)
    origin  git@github.com:mycompany/ansible.git (push)
    
    $ git reflog 
    a10cb09 HEAD@{0}: clone: from git@github.com:mycompany/ansible.git
    
    git clone https://github.com/... newfolder
    cd newfolder
    git remote add old ../path/to/first/clone
    git fetch old
    git cherry-pick a08c263
    git push