Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.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存储库作为旧分支添加到项目中_Git_Git Branch_Git Commit - Fatal编程技术网

如何将旧的.git存储库作为旧分支添加到项目中

如何将旧的.git存储库作为旧分支添加到项目中,git,git-branch,git-commit,Git,Git Branch,Git Commit,我已经找过了,但还没有找到解决办法。也许我对我的研究不够执着。如果我错过了什么,如果你能发送一些链接,我将不胜感激 我在同一个项目上和一些人合作过。他在机器上有一个带有git存储库的项目文件夹 我已经复制了他的工作目录的最新版本,但一周前我的计算机上没有他的.git 我已经安装了自己的git,并且已经提交了好几次(只有一次主早午餐,虽然很简单,只是比较和控制Sublime文本中的更改/版本)。他不再在这里工作了,他也没有做出改变,但我可以在他的工作机器上完成 问题是:现在我需要将他的git作为另

我已经找过了,但还没有找到解决办法。也许我对我的研究不够执着。如果我错过了什么,如果你能发送一些链接,我将不胜感激

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

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

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

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

因此有两个问题:

  • 我如何在他的电脑上用一个旧的日期(一周前)作出承诺
  • 如何将他的.git存储库中的这个commit/commits/all数据添加到我的.git存储库中,但作为另一个分支,一个旧分支
  • A precision:他的电脑和我的电脑上的这两个文件夹完全相同,我只想将他所有的更改添加到我的git中(不仅是我上次提交的,还有他以前做的旧提交),但不要将它们与我所做的更改混在一起。我想把它添加为一个旧的分支等等,但也许你知道一个更好的解决方案


    提前感谢您的帮助

    我可能弄错了,但你不能随心所欲。这里有一些很好的问题,并解释了原因

    您在主分支上创建的提交(返回到有史以来的第一个)由父分支确定。您希望将父级添加到您所做的第一次提交中,这将是“真实”存储库或其他内容中的最后一次提交。如果不破坏您的本地提交,您将无法执行此操作

    相反,走另一条路

    提交同事工作机器上的所有内容,然后直接从受祝福的远程设备或其机器上克隆存储库

    现在,
    git add remote wd
    将本地工作目录作为辅助远程添加到刚才克隆的repo

    然后,在克隆中,
    git checkout-b integrationBranch
    git pull wd/master
    。然后
    git合并

    这样,您将在旧存储库的提交之上堆积您的提交。您并不是在新历史中添加旧历史,而是在旧历史上添加新历史,这要好得多

    编辑:准时通知


    提交记录其创建日期和作者,以及其父级和子级。移动提交堆栈不会修改创建日期。也就是说,如果你今天
    git拉了一堆2年前的提交,你仍然会看到它们是2年前创建的。

    这能回答你的问题吗?听起来很相似,但我不需要添加一个旧目录,因为所有文件都是相同的,它只是同一个项目的两个副本。我只需要将旧的.git更改与新的更改合并。并区分它们(例如早午餐)。但是,当我在我现在的早午餐中比较不同版本之间的差异时,我应该能够用相同的设施看到旧分支和我现在的分支之间的差异。。。可能吗?也许你是对的,它可以解决我的问题,但我对git不太熟悉(总共有3周的经验)。我应该如何具体实施此解决方案??我认为git子树是我需要的东西,但我不确定。这和早午餐不一样,不是吗?哪个选项更适合我的需要?请查看此选项-它包含很少的git命令来添加新的源代码并将代码从一个存储库提交到另一个存储库。嗯,也许不完全是。。。我不想更改现有的提交。也许,甚至时间都不重要。我只需要能够看到他的蠕虫和我的蠕虫分开。分支或git子树??什么功能更适合这个?如果我像你描述的那样做,我怎么能界定我开始从事这个项目的时间??或者仅仅是git消息?为什么蠕虫如此重要?最后,你的蠕虫会从它的蠕虫分支出来。似乎你想改写历史,为自己着想。无论如何,你也可以反过来做同样的事情。去提交他的东西,把他的回购协议作为第二远程加入你的,把所有的东西都放到一个分支,移除第二远程。请小心:尝试修改提交的父级将导致该提交被销毁并生成新的提交。这是你整个历史的递归过程。。。哪一个功能更好,它是基于意见的,而不是真正的答案