Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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_Version Control - Fatal编程技术网

Git将另一个存储库中的单个文件合并到我自己的存储库中

Git将另一个存储库中的单个文件合并到我自己的存储库中,git,version-control,Git,Version Control,假设我有自己的git回购协议,里面有一堆文本文件。还有另一个不同的git回购协议,其他人拥有一堆文本文件,除了一个文件之外,所有这些文件都与我的不同 我不断地对我的repo中的不同文本文件进行更改,但我不时地想将另一个repo中的单个文件的任何更改合并到我自己的文件中 有什么简单的方法可以做到这一点吗?我四处搜索,发现了一些类似的问题,但没有一个是针对我的具体情况的。尝试添加其他回购,然后将其分支机构包括您的目标分支机构 git remote add other git@github.com:u

假设我有自己的git回购协议,里面有一堆文本文件。还有另一个不同的git回购协议,其他人拥有一堆文本文件,除了一个文件之外,所有这些文件都与我的不同

我不断地对我的repo中的不同文本文件进行更改,但我不时地想将另一个repo中的单个文件的任何更改合并到我自己的文件中


有什么简单的方法可以做到这一点吗?我四处搜索,发现了一些类似的问题,但没有一个是针对我的具体情况的。

尝试添加
其他回购
,然后将其分支机构包括您的
目标分支机构

git remote add other git@github.com:username/other-repo.git
git fetch other
切换到要在
目标文件中合并的分支。ext

git checkout your-branch
将目标文件合并到您的文件中:

git checkout -p other/target-branch target-file.ext

您可以合并任意文件或repo对象。最简单的可能是:

git merge-file file.txt <(git show last-merged-file.txt) /path/to/their/file.txt
# resolve any conflicts, then
git tag last-merged-file.txt `git hash-object-w file.txt`

git merge file file.txt如果您在原始repo中使用任何类型的打包(工件)结果,那么您也可以要求repo的所有者发布源代码。然后在您自己的repo中,您消费并解压这些工件,然后只复制您需要的文件。例如,如果使用Java Maven,请确保原始repo上的构建也发布了源代码,然后在您自己的repo中,您在预步骤(编译之前)中下载源代码依赖项,解压缩jar文件并将所需的文件复制到适当的目录中。有一些maven插件可以帮助你转到你当前的目录,我现在正在这样做,希望你也能帮助我

cd your_current_git_Directory
每秒设置另一个存储库的用户名和存储库(从要复制)


如果您自己不更改该文件,则只需复制它并提交。我正在更改要合并的文件。嗯,根据两侧更改的频率,可能最简单的方法仍然是复制它并解决出现的任何冲突。如果它是一个目录/库,我建议将其作为一个子模块,但对于一个文件。。。不管怎么说,如果您能提供帮助,正确的做法是让每个在文件上进行协作的人都使用同一存储库的fork。为了将一个文件合并到一个完全不同的存储库AFAIK.Kdiff3或其他类似的合并应用程序中,无法在Git中获取一个文件的分离历史。在用几乎相同的代码合并不同的存储库方面,Kdiff3或其他类似的合并应用程序帮了我大忙。回答得好,但是我想解释一下发生了什么。@timgeb将文档与命令进行匹配会给您留下任何具体的问题吗?
git remote add -f repo-b git@github.com:<username>/<repository>.git
git checkout -p repo-b/master  <folder_name>/<filename>
git checkout -p repo-b/master  <filename>
git remote rm repo-b