Git在存储库中创建目录[Codespaces]

时间:2013-11-21 03:32:22

标签: eclipse git git-commit git-bash

我的设置:我在Eclipse IDE中进行本地提交。我的本地存储库也位于工作区内。 不知何故,我无法使用Eclipse进行远程提交,所以我就这样做了,因此我一直在使用git bash对codespaces.com进行远程提交

git remote add origin git@codespaces.com:acct_name/repo_name
git push origin master

到目前为止,这对我有利。

现在我创建了另一个存储库,让我们说repo_foo。 对于这个存储库,我想在其中放置多个目录(项目)。我现在不需要代码空间Projects。 我只是希望能够做到这一点。

git remote add origin git@codespaces.com:acct_name/repo_foo/proj_1 
(currently this gives no repository in path error)

所以repo结构应该是这样的。

repo_foo
 - proj_1
   -src
 - proj_2
   -src
   -lib

对此有何想法?

2 个答案:

答案 0 :(得分:0)

  

现在我创建了另一个存储库,让我们说repo_foo。对于这个存储库,我想在其中放置多个目录(项目)。   我真的不需要这里的代码空间“项目”。我只想成为   能够做到这一点。

所以你想在其他git存储库中嵌套git存储库?目前还不清楚你的最终目标是什么。也许git submodules会满足您的需求?子模块基本上是克隆到另一个git存储库中的其他存储库。所以假设你有一个主项目,但你也有一个你想要使用的伟大图书馆的回购。您可以将库添加为子模块&将其引用到主项目中。这样,如果对库进行更改,则可以自动更新将该库作为子模块的项目。如果你需要,那就是非常强大的概念。

从我的角度来看问题是你正在卷入一个目录的概念。一个存储库到一个东西。因此,当您执行以下操作时:

git remote add origin git@codespaces.com:acct_name/repo_foo/proj_1

你说,“进入这个回购。并在该回购中创建另一个回购。“

由于origin的父回购已经存在,git@codespaces.com:acct_name/repo_foo/proj_1将不会git@codespaces.com:acct_name/repo_foo

您需要做的是为每个项目设置一个仓库&决定命名方案。类似的东西:

  • repo_foo_proj_1
  • repo_foo_proj_2
  • 等...

您的git remote add origin命令将是:

git remote add origin git@codespaces.com:acct_name/repo_foo_proj_1
git remote add origin git@codespaces.com:acct_name/repo_foo_proj_2
etc…

答案 1 :(得分:0)

在文件夹中初始化git时,会自动跟踪所有子文件夹。处理多个项目或文件夹时,应单独跟踪每个项目或文件夹。你应该把它们保持在同一水平。

--home
  --Workspace
    --project1
    --project2
    --project3

如果您在工作区意外初始化git,当您选中git status时,它会包含要跟踪的所有文件和文件夹。当您执行git remote add origin时,.git / config下的配置文件会添加一个用于推送和拉取操作的远程URL。因此,如果您初始化repo_foo并提供remote add,则无法在proj_1下执行相同的操作。它会被自动跟踪,所有推/拉操作都将使用repo_foo/.git/config文件中的路径。