我是git
的新手,我正在尝试学习一些新内容。
我想知道在同一个仓库中是否有可能有两个相互独立的分支(没有共同的祖先)。
说明性示例:
我们假设我们有一个存储在git@git.someDomain.com
的仓库。在~/git/
下,我有许多目录(myDir1
,myDir2
,myDirN
...)保存我已经获得的代码:
git clone git@git.someDomain.com:my-repo-1
git clone git@git.someDomain.com:my-repo-2
依此类推...... 现在我想将~/git/myDir1/scripts
移至~/scripts/
,因为我希望将这些脚本与~/git/myDir1
我转到~/scripts
并执行git init
,因此我为这些脚本创建了一个本地仓库。
然后我卡住了。
问题:
git@git.someDomain.com:my-repo-1
?~/scripts
中获取~/someScripts
(新推出的分支)的内容?如果我滥用git术语,我事先道歉,我仍在尝试学习分支,远程,原点等等。
答案 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
)更容易(快速获胜):只需复制一个文件。