将一个git repo作为分支导入另一个git仓库

fas*_*seg 15 git

由于历史原因,我们在不同的git存储库中有不同版本的源代码.因此,当项目A持有源项目B的版本X时,项目B保存源的版本Y.

你们知道将项目B作为项目A的一个分支导入的方法吗?

谢谢

Jan*_*dec 26

我不确定,你的意思是"git项目".在git中,源代码的状态由提交(也称为修订版)描述.它们存储在存储库中,但独立于存储库,可以在存储库之间自由复制.实际上,要处理源代码,git始终将提交复制到位于.git工作副本目录中的本地存储库.分支只是指向提交的名称.

因此,如果您在一个存储库中有一些分支,而另一个存储库中有其他分支,则可以:

  1. 将两者都拉入本地工作存储库:

    git remote add B git://url.to/project.B.git
    git fetch B
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将你的工作建立在B的分支机构上

    git checkout -b newname remotes/B/branchname
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将从一个中央存储库获取的分支推送到另一个中央存储库:

    git push origin remotes/B/branchname:branchname
    
    Run Code Online (Sandbox Code Playgroud)

    或者相反

    git push B remotes/origin/master:othername
    
    Run Code Online (Sandbox Code Playgroud)

您可以在remotes/大多数时间省略前缀.


kni*_*ttl 18

这对Git来说很简单.你必须将项目B添加为远程,然后获取:

git remote add projectB git://url.to/projectB.git
git fetch projectB
Run Code Online (Sandbox Code Playgroud)


小智 6

  1. 第一个从 git hub 克隆项目 A

git clone {git hub 项目 A URL}

  1. 添加项目B的远程仓库路径

git远程添加projectBrepo {git hub项目B URL}

  1. 将获取项目 B 分支

git fetch 项目Brepo

  1. 检查项目 A 和项目 B 的所有分支

git 分支 -v -a

  1. 从项目 B 中签出每个分支名称(例如:master、branch_name1)

git checkout -b master_old 遥控器/projectBrepo/master

  1. 将 master 分支从项目 B 推送到项目 A 作为 master_old

git push origin master_old

  1. 从项目 B 中签出branch_name1

git checkout -bbranch_name1 远程/projectBrepo/branch_name1

  1. 将 brnach_name1 从项目 B 推送到项目 A

git push origin 分支名1