将项目添加到来自不同文件夹的单个git仓库中

时间:2014-04-28 22:33:02

标签: git github atlassian-sourcetree smartgit

我有一个名为样本的回购组织。这些包含来自不同环境的示例项目,因此具有不同的文件夹。

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

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

我目前推出了1个项目,同时在sourcetree中推送另一个项目我正在尝试

  1. pushTo:www.github.com/alpha/samples/env2 /
  2. 我找不到文件夹错误。它确实这是文件夹不存在,并且git不允许我添加空文件夹,我应该怎么做呢?

2 个答案:

答案 0 :(得分:1)

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

哪种策略最好主要取决于您的需求。但是,正如你已经将它们作为文件夹,我想你想保持这种方法。

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

<强>文件夹

sample文件夹中,创建与您拥有的环境一样多的目录。 所以你将拥有这些目录:

  • ENV1
  • ENV2
  • ENV3

每个都有它的文件。

现在运行

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

将每个环境放在一次提交中。当然,你可以一起添加和提交:这取决于你。

然后推送到github

  

git push origin master

假设您正在使用master并将GitHub映射为原点(这也是默认行为)

<强>枝 对于每个环境切换到新分支:

git checkout -b branch_name

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

git add -A
git commit -m "Adding environment X"
git push origin branch_name

答案 1 :(得分:0)

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

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

根据需要修改.gitignore以忽略另一个.gitignore 推送到分支时的目录。

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

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

并使用git checkout命令切换到另一个分支。