Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.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
在my git repo的子目录中合并上游_Git - Fatal编程技术网

在my git repo的子目录中合并上游

在my git repo的子目录中合并上游,git,Git,我有一份git回购协议,比如projectroot。 现在我想从上游远程服务器合并。 我想将此内容合并到projectroot的特定目录中。例如,导入projectroot/html 我该怎么做? 如果我只是执行git merge upstream/branchname,它将把它合并到projectroot目录中。但它必须放在projectroot/html中 保持projectroot作为我的git回购非常重要 假设您有两个存储库Repo1和Repo2,并且希望将Repo2移动为Repo1的子

我有一份git回购协议,比如projectroot。 现在我想从上游远程服务器合并。 我想将此内容合并到projectroot的特定目录中。例如,导入projectroot/html

我该怎么做? 如果我只是执行git merge upstream/branchname,它将把它合并到projectroot目录中。但它必须放在projectroot/html中

保持projectroot作为我的git回购非常重要


假设您有两个存储库Repo1和Repo2,并且希望将Repo2移动为Repo1的子目录

为了实现这一点,我们将把Repo2的内容移动到Repo2下的子文件夹中,然后合并Repo1和Repo2

具体步骤如下:

在您的计算机上克隆两个repo

$git克隆Repo1

$git克隆Repo2

将Repo2的内容复制到子文件夹。转到文件夹Repo2并应用以下步骤:创建子文件夹Repo2

$mkdir Repo2

将所有内容从父Repo2移动到子Repo2,但.git文件夹除外,并将文件转移到添加的文件夹和删除的文件中,以便稍后提交

$git第二阶段报告/

$git stage README.md

提交这些更改并将其推送到git

$git commit-am'[REPO-2]将内容移动到子文件夹'

$git推送原始主机

转到文件夹Repo1并执行以下操作: 添加内容为Repo2的远程分支

$git remote add Repo2Temp path_to_Repo2

Fetch Repo2Temp,我们在上一步中创建的临时repo

$git获取Repo2Temp

将Repo2Temp与Repo1合并

$git合并Repo2Temp/master

删除远程Repo2Temp

$git远程rm Repo2Temp

将更改推送到服务器

$git推送原始主机


上游存储库是您的项目存储库还是另一个具有不相关历史记录的远程存储库?它是根文件夹上的另一个repo,但/html文件夹中的内容来自上游远程存储库,该远程存储库已移动到html文件夹您签出git子模块了吗?正如Mike所说,您可以使用git子模块或可能的副本