1

所以我在 master 上创建了一个名为 branch-a 的新分支,然后切换到它。我做了一些修改,切换回 master 以确保此后没有进行任何更改,但我看到我在 master 分支的 branch-a 中所做的所有修改。这是正确的吗?如果我在没有合并的情况下在分支 a 中制作了所有的 mod,我希望 master 不会有任何修改。这是我所做的:

从一个干净的、最新的 master 分支开始。

  1. git 分支 -b 分支 -a
  2. 进行修改
  3. git结账大师
  4. 状态
  5. 我看到了我在 branch-a 中所做的所有修改

它是否正确?是因为我在切换到master之前没有提交branch-a吗?

4

2 回答 2

2

我想在 2. 和 3. 之间缺少一个步骤:

2a. 添加并提交更改:

git add -A
git commit -m "describe your changes" 

第一个命令将所有更改的文件添加到索引中,第二个命令提交索引内的所有内容。

现在您可以切换回master

编辑:签出分支更改将提交更改的存储库(并将工作目录中未更改的文件与分支的 HEAD 同步)。未提交的更改保留在工作目录中,添加的更改保留在索引中。除非您这么说,否则不会发生合并。如果这不能说明问题,请查看本文的开头部分,以获得对 git 树的详细说明

于 2012-11-20T16:13:13.440 回答
0

使用git branch将创建分支的操作​​与实际切换到它的操作分开。此外,您需要在更改存在于分支之前提交更改。

git branch -b branch-a

这会创建一个名为 的分支branch-a,但不会将其签出,因此您仍在master. 如果你想工作branch-a,你需要在git checkout branch-a这里做一个,或者将上面的命令替换为git checkout -b branch-a master.

make modifications

假设你在你想要的分支上,git add <modified files>; git commit此时实际上会在包含这些更改的分支上创建一个新的提交。

git checkout master

你已经在主人身上了,所以这可能没什么用。git尝试不丢失未提交的更改,因此您的工作目录仍应与运行git checkout​​ .

git status

应该报告您正在进行master并列出您所做的未提交的更改。

I see all the modifications that I made in branch-a

您会看到您所做的所有修改,但您没有在branch-a.

于 2012-11-20T16:49:00.597 回答