Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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_Github - Fatal编程技术网

git推到分支

git推到分支,git,github,Git,Github,我有一个奇怪的问题(我想…)。如果其中有些不合理,请容忍我;我是个笨蛋 我有一个已经存在的android项目,它位于自己的文件夹中,完全不在我克隆的回购协议的范围之内。我想做的就是把这个android项目的内容推到我同事的回购协议上。我希望该项目成为回购协议新分支的一部分。我该怎么做呢?我可以打开bash,转到我的android项目文件夹,在repo中添加一个遥控器并推到它吗?或者我想我首先需要把这个项目变成回购协议的一个分支?如果是这样,如果我实际上在本地回购文件夹之外工作,我将如何使其成为回

我有一个奇怪的问题(我想…)。如果其中有些不合理,请容忍我;我是个笨蛋

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

困惑了吗?;)

也许将整个项目复制到本地repo文件夹中,然后创建一个分支并推送它是最有意义的

我想要一些关于如何最有效地做到这一点的分步说明

非常感谢

让“android项目在它自己的文件夹中”成为“A”,让我克隆的repo成为“B”。)

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

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


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

这两个项目似乎在很大程度上是独立的,因此我强烈怀疑最好的选择是更改存储库的文件结构,而不是使用分支:

/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是点对点的,但是有一个您指定为“中心”的存储库是很好的,特别是如果您将来要添加持续集成或新开发人员的话

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

如果分支A与分支B完全不同,那么分支就没有多大意义:您还不如拥有一个全新的存储库


对不起,这是一个很长的回答。我希望这会有帮助

你调查过这件事吗?非常感谢您的及时和彻底的答复。我需要一些澄清。当我问mkdir时,你是说我应该在那里创建一个子文件夹,称为“projecta”,然后从那里开始?另外,“cp-r/path/to/projectA”做什么?是的,在存储库中为每个项目创建一个子文件夹。
cp
命令将现有的
projectA
文件夹复制到当前目录。如果这些项目尚不存在,您可以将其替换为
mkdir projectX
。我假设你在Linux上;在Windows中,您可能只需将项目文件夹拖放到存储库中。最后,在/path/to/repo中有一个存储库,其中有两个文件夹(和一个.git文件夹)。谢谢。要成功推送,我需要添加、提交,然后推送,对吗?如何将拖放到repo中的整个项目文件夹添加到repo中?我会只做“git add project/”吗?此外,在尝试推送时,我一直会遇到“致命:用户名/repo.git似乎不是git repo”…请确保首先克隆主存储库(或使用
git init
),以避免“看起来不是git repo”问题。增加项目;犯罪push是正确的。@LuxuryMode是的,我同意分支不是用于不同代码库的正确模型。我建议将两者放在单独的存储库中,并从中进行工作。
mkdir /path/to/centralrepo
git init --bare