2014-04-28 84 views
0

我有一个组织,其中有一个名为samples的仓库。这些包含来自不同环境的示例项目,因此有不同的文件夹。将项目添加到来自不同文件夹的单个git仓库

organization name: alpha 
repo: samples 
     + env1 
     + env2 
     + env3 

这些项目在本地存在于3个不同的工作区中。将这些推入git回购的最佳方式是什么?

我现在有1个项目推,而在sourcetree推动其他项目我想

  1. 普什图语:www.github.com/alpha/samples/env2/

我得到的文件夹未发现错误。这是真的,这是文件夹不存在,它git不允许我添加空文件夹,我应该怎么做呢?

+0

你不能推到Git中的子目录。您只能推送到存储库。这很难理解你在找什么;也许[submodules](http://git-scm.com/docs/git-submodule)会有帮助? – Chris

回答

0

我会建议为每个子目录做一个分支。

git checkout -b <branch name> //env1, env2, and env3, I suppose 

根据需要修改的.gitignore当你推到分支忽略其他 目录。

然后,当你想切换到另一个项目,提交 更改:

git add -A 
git commit -m "<your message>" 
git push origin <branch name> //Optional 
git checkout <other branch name> 

,并切换到另一个分支与git checkout命令。

1

您可以使用文件夹或分支。

哪种策略最好主要取决于您的需求。但是,因为你已经有了这些文件夹,我想你想保持这种做法。

无论如何,让我们看看两者。

FOLDERS

作为在sample文件夹,创造尽可能多的目录,你的环境。 所以你有这些目录:

  • ENV1
  • ENV2
  • ENV3

各有其文件。

现在运行

for env in env1 env2 env3 
git add $env 
git commit -m "Adding ${env}" 
done 

,要对单个提交每个环境。当然,您可以一起添加和提交:完全取决于您。

然后推到GitHub的

混帐推起源主

假设你在主工作,并映射GitHub上为原点(这是默认的行为为好)

分支机构 对于每个环境切换到新分支:

git checkout -b branch_name 

添加的文件/从任何环境中的目录你想跟踪:

git add -A 
git commit -m "Adding environment X" 
git push origin branch_name 
相关问题