【问题标题】:add projects into single git repo from different folders将项目从不同文件夹添加到单个 git repo
【发布时间】:2014-04-28 22:33:01
【问题描述】:

我有一个名为 samples 的存储库的组织。这些包含来自不同环境的示例项目,因此具有不同的文件夹。

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

这些项目在本地存在于 3 个不同的工作区中。将这些推送到 git repo 的最佳方法是什么。

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

  1. pushTo:www.github.com/alpha/samples/env2/

我得到文件夹未找到错误。确实这是文件夹不存在,而且git不允许我添加空文件夹,我该怎么办?

【问题讨论】:

  • 您无法推送到 Git 中的子目录。您只能推送到存储库。有点难以理解你在寻找什么;也许submodules 会有所帮助?

标签: git github atlassian-sourcetree smartgit


【解决方案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

【讨论】:

    【解决方案2】:

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

    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 命令切换到另一个分支。

    【讨论】:

      猜你喜欢
      • 2019-07-21
      • 2017-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      • 2019-10-08
      • 1970-01-01
      相关资源
      最近更新 更多