【问题标题】:How to add an old .git repository to a project as an old branch如何将旧的 .git 存储库作为旧分支添加到项目中
【发布时间】:2020-11-14 08:22:45
【问题描述】:

我已经搜索过,但没有找到解决方案。可能是我的研究不够坚持。如果我遗漏了什么,请发送一些链接,我将不胜感激。

我曾在同一个项目上与某个人合作过。他的机器上有一个带有 git 存储库的项目文件夹。

我已经复制了他的工作目录的最新版本,但一周前我的计算机上没有他的 .git。

我已经安装了自己的 git,并且已经进行了几次提交(只有一次主早午餐,虽然很简单,只是为了比较和控制 Sublime Text 中的更改/版本)。他不再在这里工作,也没有提交更改,但我可以在他的工作机器上执行此操作。

问题是:现在我需要将他的 git 添加到我的但作为另一个分支(旧分支)。

因此有两个问题:

  1. 如何使用旧日期(一周前)在他的计算机上进行提交。
  2. 如何将他的 .git 存储库中的这个 commit/commits/all 数据添加到我的 .git 存储库,但作为另一个分支,一个旧分支。

一个精度:他电脑上的这两个文件夹和我的完全一样,我只想把他所有的改动都加到我的git里面(不只是最后一次commit我做了,但他之前也做过旧的提交),但不要将它们与我所做的更改混在一起。我想将此添加为旧分支等。但也许您知道更好的解决方案。

提前感谢您的帮助!

【问题讨论】:

  • 嗯,听起来很相似,但我不需要添加旧目录,因为所有文件都相同,只是同一个项目的两个副本。我只需要将旧的 .git 更改与新更改合并。并区分它们(例如早午餐)。但是当我比较当前早午餐中不同版本之间的差异时,我应该能够使用相同的设施看到旧分支和当前分支之间的差异......这可能吗?
  • 也许你说得对,它可以解决我的问题,但我对 git 不是很熟悉(总共有 3 周的经验))))。我应该如何实施这个解决方案?我认为 git-subtree 是我需要的东西,但我不确定。这和早午餐不一样,不是吗?哪个选项套件更适合我的需求??
  • 请查看这个 - 它包含一些 git 命令来添加新的源并将代码从一个存储库提交到另一个存储库。 stackoverflow.com/questions/34384642/…

标签: git git-branch git-commit


【解决方案1】:

我可能弄错了,但你不能做你想做的事。这是一个很好的问题,answer 解释了原因。

您在 master 分支上创建的提交,可以追溯到第一个提交,由父级确定。您想将父级添加到您所做的第一个,这将是来自“真实”存储库或其他东西的最后一次提交。你将无法做到这一点,除非破坏你的本地提交。

相反,走另一条路。

从您同事的工作机器上提交所有内容,然后从受祝福的远程或直接从它的机器上git clone 该存储库。

现在,git add remote <your local wd> wd 将您的本地工作目录作为辅助远程添加到您刚刚克隆的存储库。

然后,在克隆中,git checkout -b integrationBranchgit pull wd/master。然后git merge

通过这种方式,您会将提交堆积在旧存储库的提交之上。您不是在新历史中添加旧历史,而是在旧历史上添加新历史,这要好得多。

编辑:准时备注

提交记录其创建日期和作者,除了它的父母和孩子。移动提交堆栈不会修改创建日期。意思是,如果你今天git pull 一堆 2 年前的提交,你仍然会看到它们是 2 年前创建的。

【讨论】:

  • 好吧,也许不完全是……我不想更改现有的提交。也许,甚至时间都不重要。我只需要能够与我的分开看到他的蠕虫。分支或 git-subtree?什么功能对此更好?如果我按照您的描述进行制作,我该如何界定我开始从事这个项目的时间?还是只使用 git-message?
  • 为什么蠕虫如此重要?最后,你的虫子从他的虫子中分支出来。好像你想改写对你有利的历史。无论如何,你可以反过来做同样的事情。去提交他的东西,将他的 repo 作为辅助远程添加到你的,将所有内容拉到分支中,删除辅助远程。请注意:尝试修改提交的父级将导致该提交被破坏并产生新的提交。这是在你的整个历史中递归的......功能更好,它是基于意见的,而不是真正的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-07
  • 2015-05-22
  • 2020-02-27
  • 1970-01-01
  • 2012-11-27
相关资源
最近更新 更多