Git:获取后删除无关存储库中的更改,或者如何修复“警告:无共同提交”?

木通哥

我用

$ git remote show origin 
* remote origin
  Fetch URL: git://gitorious.org/bash/bash.git

但没有2011年以来任何新的变化,使我谷歌那里是官方消息来源:http://savannah.gnu.org/git/?group=bash

我决定进行新的起源:

$ git remote rename origin gitorious
$ git remote add origin git://git.savannah.gnu.org/bash.git

fetch最新更改,以比较发生的情况(git log master..origin/master):

$ 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    

在看到warning: no common commits中断后,我徘徊了如何从本地存储库中剥离这些无关的获取的更改(我知道我需要clean clone)。

我更好,hg它总是抱怨无关的存储库,除非您-f

周二

如果要完全放弃以前的遥控器,则可以将其删除:

git remote remove <remote-name>

但是,这样做只是删除远程条目和远程跟踪分支标签。让我展示一个(非常)简化的示例,其中包含两个具有两个不相关的提交DAG的远程控制器,以及您自己的本地更改。让我们把两个遥控器rmt1rmt2(一个实际上可能是gitorious现在和其他的origin,但我想概括了一下):

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

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

A提交代表你从远程带来了一切rmt1(远程你有开始,大概gitorious现在)。在这里,您拥有一个本地提交,并对L从那里得到的东西进行了一些更改rmt1,并且您刚刚添加了remotermt2并带来了其提交图(B提交)。

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

           L     <-- master
         /
A0 <- A1

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

这里的问题是您自己的局部更改(commit L)使用并因此保留了至少一些原始提交图A-series提交。

大概,您想做的是找到部分或全部不是 rmt1提交的本地提交,查看要保留的更改,并在B-中找到一些合适的提交作为这些更改的基础。系列提交。如果只有一个本地提交(在这种情况下),那很容易;但是如果有很多,则必须决定要保留哪个。

在许多情况下,您现在有一个或两个正在使用的分支,这些分支的尖端就是您想要保留的。在这种情况下,您可以简单地保存旧的git存储库,通过克隆B系列(在本例中为git.savannah.gnu.org创建一个新的git存储库,然后在新存储库中选择要移植到的某些分支活跃的分支提示。在这里,您只需要使用保存的存储库提取补丁(例如git diff或git format-patch),然后将其导入新的存储库。从概念上讲,这要简单得多。

但是,在其他情况下,您可能真的希望将两个远程存储库的内容都保存在一个存储库中,至少要保留一段时间,直到可以重新设置基准或保存更改为止。这是保存和复制两组DAG的便捷方法,它使您可以在任一(独立)图中的提交上使用git命令,包括将一个树与另一个图进行比较。从概念上讲,它是更复杂的,并且是您当前的发展方向。

在不了解您的情况的情况下,我无法真正推荐一种方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何防止用户从远程git存储库中删除提交

来自分类Dev

如何防止用户从远程git存储库中删除提交

来自分类Dev

更改/删除存储库后,从git repo中删除大文件

来自分类Dev

从本地存储库中删除文件/文件夹后,如何从远程git存储库中获取文件/文件夹?

来自分类Dev

Git:保留本地存储库中的更改并在添加到.gitignore后从索引中删除

来自分类Dev

在SVN目录中初始化Git存储库后,如何将Git提交提交到SVN?

来自分类Dev

如何从远程存储库中获取更改

来自分类Dev

如何从Bitbucket Merurial存储库中删除远程提交

来自分类Dev

如何从给定的提交哈希中获取与时间戳无关的git哈希

来自分类Dev

在Git中多次提交后如何撤消文件中的更改?

来自分类Dev

如何使用git存储库中已存在的文件创建新的git存储库,并保持提交

来自分类Dev

如何获取git存储库中各修订版之间已更改文件的列表?

来自分类Dev

如何获取git存储库中各修订版之间已更改文件的列表?

来自分类Dev

为什么我的远程Git存储库在推送到它后仍未提交更改?

来自分类Dev

为什么我的远程Git存储库在推送到它后仍未提交更改?

来自分类Dev

在 Git 中推送到远程后如何更改提交消息

来自分类Dev

git:如何从暂存删除的文件中恢复未提交的更改?

来自分类Dev

获取git存储库中第一次提交的提交哈希

来自分类Dev

如何从其他存储库合并中删除对GitHub存储库的提交?

来自分类Dev

如何更改共同历史记录中的提交?

来自分类Dev

如何从git存储库中删除文件,而不在克隆的存储库中删除文件

来自分类Dev

如何从git存储库中删除文件,而不在克隆的存储库中删除文件

来自分类Dev

在存储库中自动提交更改

来自分类Dev

如何从远程存储库获取最新提交?

来自分类Dev

删除分支后,修复打开的PR的“未知存储库”

来自分类Dev

GIT 删除远程源存储库,并更改默认存储库

来自分类Dev

提交消息中的Git magic关键字(签名者,共同作者,修复程序...)

来自分类Dev

设置新的远程存储库后,如何提交现有更改?

来自分类Dev

返回存储库中的特定修订后提交并推送更改?

Related 相关文章

  1. 1

    如何防止用户从远程git存储库中删除提交

  2. 2

    如何防止用户从远程git存储库中删除提交

  3. 3

    更改/删除存储库后,从git repo中删除大文件

  4. 4

    从本地存储库中删除文件/文件夹后,如何从远程git存储库中获取文件/文件夹?

  5. 5

    Git:保留本地存储库中的更改并在添加到.gitignore后从索引中删除

  6. 6

    在SVN目录中初始化Git存储库后,如何将Git提交提交到SVN?

  7. 7

    如何从远程存储库中获取更改

  8. 8

    如何从Bitbucket Merurial存储库中删除远程提交

  9. 9

    如何从给定的提交哈希中获取与时间戳无关的git哈希

  10. 10

    在Git中多次提交后如何撤消文件中的更改?

  11. 11

    如何使用git存储库中已存在的文件创建新的git存储库,并保持提交

  12. 12

    如何获取git存储库中各修订版之间已更改文件的列表?

  13. 13

    如何获取git存储库中各修订版之间已更改文件的列表?

  14. 14

    为什么我的远程Git存储库在推送到它后仍未提交更改?

  15. 15

    为什么我的远程Git存储库在推送到它后仍未提交更改?

  16. 16

    在 Git 中推送到远程后如何更改提交消息

  17. 17

    git:如何从暂存删除的文件中恢复未提交的更改?

  18. 18

    获取git存储库中第一次提交的提交哈希

  19. 19

    如何从其他存储库合并中删除对GitHub存储库的提交?

  20. 20

    如何更改共同历史记录中的提交?

  21. 21

    如何从git存储库中删除文件,而不在克隆的存储库中删除文件

  22. 22

    如何从git存储库中删除文件,而不在克隆的存储库中删除文件

  23. 23

    在存储库中自动提交更改

  24. 24

    如何从远程存储库获取最新提交?

  25. 25

    删除分支后,修复打开的PR的“未知存储库”

  26. 26

    GIT 删除远程源存储库,并更改默认存储库

  27. 27

    提交消息中的Git magic关键字(签名者,共同作者,修复程序...)

  28. 28

    设置新的远程存储库后,如何提交现有更改?

  29. 29

    返回存储库中的特定修订后提交并推送更改?

热门标签

归档