在git中同一个repo中的两个并行的独立分支

时间:2015-06-02 17:34:31

标签: git version-control

我是git的新手,我正在尝试学习一些新内容。

我想知道在同一个仓库中是否有可能有两个相互独立的分支(没有共同的祖先)。

说明性示例:

我们假设我们有一个存储在git@git.someDomain.com的仓库。在~/git/下,我有许多目录(myDir1myDir2myDirN ...)保存我已经获得的代码:

  1. git clone git@git.someDomain.com:my-repo-1
  2. git clone git@git.someDomain.com:my-repo-2依此类推......
  3. 现在我想将~/git/myDir1/scripts移至~/scripts/,因为我希望将这些脚本与~/git/myDir1

    中存储的源代码分开

    我转到~/scripts并执行git init,因此我为这些脚本创建了一个本地仓库。

    然后我卡住了。

    问题:

    1. 如何将此本地仓库推送到git@git.someDomain.com:my-repo-1
    2. 如何在我的另一台PC上的~/scripts中获取~/someScripts(新推出的分支)的内容?
    3. 如果我滥用git术语,我事先道歉,我仍在尝试学习分支,远程,原点等等。

1 个答案:

答案 0 :(得分:2)

  

是否可以在同一个仓库中拥有两个彼此独立的分支。

相同的回购中,称为orphaned branch,但这不是您在问题中所做的。
您正尝试将一个仓库拆分为两个,从一个仓库(~/git/myDir1,文件夹scripts/)中删除文件夹历史记录,并在第二个新仓库中导入其历史记录(~/scripts

  

如何将此本地回购推送到git@git.someDomain.com:my-repo-1

cd ~/scripts
git remote add origin git@git.someDomain.com:my-repo-1

但是,在能够执行git push -u origin master

之前,您需要至少进行一次提交

为此,请参阅Splitting a subfolder out into a new repository

  

如何在我的另一台PC上的~/scripts中获取~/someScripts(新推出的分支)的内容?

一个解决方案是 compress your ~/scripts into one file ,一个捆绑包,将其复制到您的其他PC并从git bundle克隆。
这似乎比尝试在另一台PC(git守护程序,sshd,httpd)上启动一个监听器(从一台PC到另一台PC git push)更容易(快速获胜):只需复制一个文件。