Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.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:fetch后从无关的存储库中删除更改,或者如何修复“警告:没有公共提交”?_Git - Fatal编程技术网

Git:fetch后从无关的存储库中删除更改,或者如何修复“警告:没有公共提交”?

Git:fetch后从无关的存储库中删除更改,或者如何修复“警告:没有公共提交”?,git,Git,我用 但自2011年以来没有任何新的变化。所以我想谷歌的官方来源是: 我决定做一个新的起点: $ git remote show origin * remote origin Fetch URL: git://gitorious.org/bash/bash.git 并获取最新更改,以便比较发生的git log master..origin/master: 在我看到警告后:没有常见的提交,我中断了抓取,不知道如何从本地存储库中剥离这些无关的抓取更改,我知道我需要干净的克隆 我更喜欢hg,它

我用

但自2011年以来没有任何新的变化。所以我想谷歌的官方来源是:

我决定做一个新的起点:

$ git remote show origin 
* remote origin
  Fetch URL: git://gitorious.org/bash/bash.git
并获取最新更改,以便比较发生的git log master..origin/master:

在我看到警告后:没有常见的提交,我中断了抓取,不知道如何从本地存储库中剥离这些无关的抓取更改,我知道我需要干净的克隆


我更喜欢hg,它总是抱怨不相关的存储库,除非你-f.

这只是一个警告。将有两个不相关的提交树,例如gitk将它们一个接一个地可视化为不相关的,但除此之外没有其他区别,所有git命令diff、merge、cherry-pick等将继续按预期工作

要清除/隐藏不需要的修订,只需删除对它们的引用,这是整个git的通用规则。对于第二个远程存储库,这意味着您需要删除相应的remote:git remote rm origin。您还可以手动删除.git/refs/remotes/和.git/packed refs中的引用


删除引用后,存储库中相应的对象最终将被删除并回收空间。您还可以手动运行git gc。

这只是一个警告。将有两个不相关的提交树,例如gitk将它们一个接一个地可视化为不相关的,但除此之外没有其他区别,所有git命令diff、merge、cherry-pick等将继续按预期工作

要清除/隐藏不需要的修订,只需删除对它们的引用,这是整个git的通用规则。对于第二个远程存储库,这意味着您需要删除相应的remote:git remote rm origin。您还可以手动删除.git/refs/remotes/和.git/packed refs中的引用


删除引用后,存储库中相应的对象最终将被删除并回收空间。您还可以手动运行git gc。

如果您想完全放弃以前的遥控器,只需将其删除:

$ git fetch origin 
warning: no common commits
remote: Counting objects: 23368, done.
remote: Compressing objects: 100% (3449/3449), done.
^Cceiving objects:   8% (1895/23368), 8.51 MiB | 478.00 KiB/s    
A提交表示您从远程rmt1带来的所有内容—您最初拥有的远程,现在可能是gitorious。这里还有一个本地提交L,对从rmt1得到的东西做了一些更改,您刚刚添加了远程rmt2,并带来了它的提交图B提交

如果现在运行git remote remove rmt1,git将删除配置行以及rmt1/master标签。以下是您剩下的内容,不包括不可见但未被垃圾收集的提交:

           L     <-- master
         /
A0 <- A1 <- A2     <-- rmt1/master

B0 <- B1 <- B2 <- B3   <-- rmt2/master
这里的问题是,您自己的本地更改提交L使用并因此保留了至少一些原始提交图A系列提交

想必,您要做的是找到一些或所有不是rmt1提交的本地提交,查看您所做的哪些更改要保留,并找到一些合适的提交,以在B系列提交中基于这些更改。如果只有一个本地提交,就像在本例中一样,这相当容易;但如果有很多,你必须决定要保留哪些

在许多情况下,您现在有一个或两个积极使用的分支,这些分支的尖端是您想要保留的。在这种情况下,您可以简单地保存旧的git存储库,通过从git.savannah.gnu.org克隆本例中的B系列来创建一个全新的git存储库,并在新的repo中选择一些分支,将活动分支提示移植到这些分支上。例如,在这里,您只需使用保存的存储库提取git diff或git格式的补丁,然后将它们导入新的存储库。这在概念上要简单得多

不过,在其他情况下,您可能真的希望将两个远程回购的内容保留在一个回购中,至少保留一段时间,直到您可以重新设置基础或以其他方式保留更改。这是一种保存和复制两组DAG的方便方法,它允许您在两个独立图中的提交上使用git命令,包括区分一个图中的树和另一个图中的树。这在概念上更为复杂,是你目前的方向


如果不了解更多您的情况,我真的不能推荐一种或另一种方法。

如果您想完全放弃以前的遥控器,您可以简单地删除它:

$ git fetch origin 
warning: no common commits
remote: Counting objects: 23368, done.
remote: Compressing objects: 100% (3449/3449), done.
^Cceiving objects:   8% (1895/23368), 8.51 MiB | 478.00 KiB/s    
A提交表示您从远程rmt1带来的所有内容—您最初拥有的远程,现在可能是gitorious。这里还有一个本地提交L,对从rmt1得到的东西做了一些更改,您刚刚添加了远程rmt2,并带来了它的提交图B提交

如果现在运行git remote remove rmt1,git将删除配置行以及rmt1/master标签。以下是您所剩下的内容,不包括已不可见但尚未完成的提交 已收集的垃圾:

           L     <-- master
         /
A0 <- A1 <- A2     <-- rmt1/master

B0 <- B1 <- B2 <- B3   <-- rmt2/master
这里的问题是,您自己的本地更改提交L使用并因此保留了至少一些原始提交图A系列提交

想必,您要做的是找到一些或所有不是rmt1提交的本地提交,查看您所做的哪些更改要保留,并找到一些合适的提交,以在B系列提交中基于这些更改。如果只有一个本地提交,就像在本例中一样,这相当容易;但如果有很多,你必须决定要保留哪些

在许多情况下,您现在有一个或两个积极使用的分支,这些分支的尖端是您想要保留的。在这种情况下,您可以简单地保存旧的git存储库,通过从git.savannah.gnu.org克隆本例中的B系列来创建一个全新的git存储库,并在新的repo中选择一些分支,将活动分支提示移植到这些分支上。例如,在这里,您只需使用保存的存储库提取git diff或git格式的补丁,然后将它们导入新的存储库。这在概念上要简单得多

不过,在其他情况下,您可能真的希望将两个远程回购的内容保留在一个回购中,至少保留一段时间,直到您可以重新设置基础或以其他方式保留更改。这是一种保存和复制两组DAG的方便方法,它允许您在两个独立图中的提交上使用git命令,包括区分一个图中的树和另一个图中的树。这在概念上更为复杂,是你目前的方向


如果不了解更多您的情况,我真的无法推荐一种或另一种方法。

好的,我如何清理/剥离/删除不相关的更改?我不希望存储库不相关,也不想为不相关的提交而烦恼……好吧,我如何清理/剥离/删除不相关的更改?我不希望存储库不相关,也不想为不相关的提交而烦恼。。。
           L     <-- master
         /
A0 <- A1

B0 <- B1 <- B2 <- B3   <-- rmt2/master