git推送到分支机构

时间:2010-12-12 17:33:36

标签: git github

我有一个特殊的问题(我想......)。如果其中一些没有意义,请耐心等待;我是一个git noob。

我有一个已经存在的android项目,它位于自己的文件夹中,完全在我克隆的repo之外。我想要做的就是将这个android项目的内容推送给我同事的回购。我希望项目成为repo上新分支的一部分。我该怎么做呢?我可以打开bash,转到我的android项目文件夹并在repo中添加一个遥控器并推送到它吗?或者我想我首先需要将这个项目变成回购的一个分支?如果是这样,如果我实际在本地repo文件夹之外工作,我将如何使它成为repo的一个分支?

困惑了吗? ;)

将整个项目复制到本地repo文件夹然后创建分支并推送它可能最有意义吗?

我很喜欢有关如何最有效地完成此操作的一些分步说明。

非常有责任。

2 个答案:

答案 0 :(得分:1)

似乎这两个项目基本上是独立的,所以我强烈怀疑最好的选择是更改存储库的文件结构而不是使用分支:

/path/to/repo
  +- projectA
  +- projectB

所以在一台机器上这样做:

mkdir /path/to/repo
git init
cp -r /path/to/projectA .
git add .
git commit -m "Initial import of project A"

然后在另一台机器上:

cd /path/to
git clone <url for repo set up on the first machine>
cd repo
cp -r /path/to/projectB .
git add .
git commit -m "Initial import of project B"

此时不要打扰git分支。您现在可以处理项目A并创建提交;另一个开发人员可以在B上工作。不会有任何冲突,你们都会看到彼此的变化。

我还建议在某个地方设置一个裸仓库,你可以推送和拉出:

mkdir /path/to/centralrepo
git init --bare

然后,您可以克隆此存储库。 Git是点对点的,但是有一个你指定为“中心”的存储库是一件好事,特别是如果你将来要添加持续集成或新的开发人员。

您似乎对git分支的含义感到有些困惑。它是时间的一个分支,而不是太空中的一个分支。也就是说,git分支意味着代码开发在过去的某个时刻发生了分歧,但两个分支在某些时候有共同的历史。例如,空间中的分支是包含新项目的新文件夹。

如果分支A与分支B完全不同,分支并没有多大意义:您可能还有一个全新的存储库。

很抱歉这是一个很长的答案。我希望它有用!

答案 1 :(得分:0)

让“自己文件夹中的android项目”为“A”,“我克隆的回购”为“B”。 :)

首先将项目A转换为git存储库(如果不是)。 (git init

然后你可以将它作为遥控器添加到B(git remote add ...,请参阅帮助)并将其拉入B(git branch --help)的本地分支。然后你可以把它推到B的其他遥控器中。

如果你能提供路径名,我可以写一个例子。