Git 在一个目录上添加分支?

Git add branch on one single directory?

我在 GitHub 上有一个 git 存储库,有 3 个不同的文件夹,只有 master 分支。我怎样才能在一个目录而不是所有三个目录上创建一个新分支?

  1. git checkout -b
  2. 本地删除另外两个目录
  3. git 推送

你不能。 Git 对整个存储库进行操作,而不是对单个目录进行操作。您可以:

  • 创建一个新分支,并且在该分支上只修改目标目录中的内容。
  • 你显然可以按照 william.eyidi 的建议删除其他目录,但是如果你想将更改合并回你的 master 分支,这会让事情变得困难。
  • 您可以将特定目录设置为一个 git 子模块,它具有独立于父存储库的历史记录,但这可能比它的价值更复杂。

我猜你应该删除那个存储库然后再做一次,但这次是正确的分支。

您提到您有 3 个文件夹,但您只想版本化一个文件夹。因此,使用 git.

转到您的文件夹

这是 Git-Bash

中的示例
cd /path/to/your/folder
git init
git add --all
git commit -m "My first commit."
git push origin master

来源必须是 github-repository 地址。

创建新分支后,您可以添加跟踪该分支的目录,而不是签出整个存储库的分支,而其他目录跟踪另一个分支。

git worktree add masterBranchDirectory master

现在目录 masterBranchDirectory 是整个存储库的副本。进入此目录后,您将自动进入 master 分支。

您可以只为周围项目中的单个文件夹创建一个新存储库。

例如对于名为 App:

的项目

假设在您的 App 项目中,您希望 folder1 成为您的新 Repo。
您必须在 github 上创建一个新的 Repo。然后在你的本地 App 打开 git bash:

# create a Git Repository:

$ cd /folder1
$ git init -b main
$ git add . && git commit -m "initial commit"  

# link local Repo with remote Repo:

$ git remote add origin  <REMOTE_URL TO NEWLY CREATED REPO> 
# Sets the new remote
$ git remote -v
# Verifies the new remote URL  

# push your new Repo to Github:

$ git push origin main

然后
如果您的 App 项目是您的整个开发文件夹
folder1 是您的分发文件夹,构建文件位于

您总是可以克隆 folder1 的 回购以供展示之用

App Repo 用于开发目的。

此外,基本上您的单个文件夹在不同的存储库中有一个单独的分支。 但由于它在您的 App 中,所以没有任何区别。

选项 B:

还有git子模块的选项,如前文所述。
你可以从你的主要回购中获得 foler1 甚至 separatley(但不一定分开)并且只将它“嵌入”到你的 App.
https://git-scm.com/book/de/v2/Git-Tools-Submodule
How do I work with a git repository within another repository?