【发布时间】:2021-08-19 09:53:31
【问题描述】:
我正在使用 git 进行一个项目,我被分配了两个任务。让我们假设任务 A 和任务 B。
我从 fork 项目开始并创建了一个名为 A 的分支,此时我不知道我必须执行任务 B。在 fork 项目后,我已将项目克隆到本地电脑。
接下来我运行了以下命令:
git checkout -b A -- 创建分支A
我根据要求对项目进行了更改,然后我做了以下操作
git add *
git commit -m "message"
git push origin A
现在我被分配了任务 B,为此我创建了名为 B 的分支。
git checkout -b B
根据要求进行更改并将这些更改提交给分支 B。
现在的问题是分支 B 也包含在 A 中所做的更改,而是应该遵循主分支加上任务 B 所需的更改。我该如何解决这个问题?分支 B 应遵循主分支并根据分支 B 上的任务 B 进行更改。
我试过git checkout main,但没有这样的分支。
【问题讨论】:
-
在进一步回答这个问题之前,您需要确定:您是否直接在 GitHub 上进行所有操作? (这很困难,可能是个坏主意。)或者:您是否将 GitHub 存储库克隆到您自己的机器上,例如笔记本电脑? (这通常是要走的路。)如果您确实克隆了您的 GitHub 分支,那么现在涉及 三个 存储库:GitHub 上的两个(原始和您的分支)和三分之一在你的笔记本电脑上。
-
这很重要,因为每个存储库都有自己的分支名称。当您像这样使用多个存储库时,您将共享提交,但不会共享分支名称。
-
因此,鉴于(根据您的问题)有 三个 存储库,现在重要的是要说:“我的笔记本电脑上有分支 B”或“我有分支 B在我的 GitHub fork 上”或其他任何东西。您可能(也可能不会)在 GitHub 分支中使用与笔记本电脑上相同的名称,但它们是不同的分支!
标签: git github version-control git-branch