所以我创建了一个名为branch-a的新分支,然后切换到它。我做了一些修改,切换回master以确保自那以后没有进行任何更改,但是我看到了我在master分支中的branch-a中所做的所有修改。这是正确的吗?如果我在分支-a中制作所有我的mod而没有合并,我希望master不会有任何修改。这就是我的所作所为:
从一个干净,最新的主分支开始。
这是对的吗?是因为我在切换到master之前没有提交branch-a吗?
答案 0 :(得分:2)
我想在2和3之间缺少一步。:
2a上。添加并提交更改:
git add -A
git commit -m "describe your changes"
第一个命令将所有已更改的文件添加到索引中 第二个命令提交索引中的所有内容。
现在您可以切换回master
编辑:检出分支会更改您的更改将被提交到的存储库(并将工作目录中未更改的文件与分支的HEAD同步)。未更改的更改仍保留在工作目录中,添加的更改仍保留在索引中。在你这样说之前不会发生合并。如果这不能澄清事情,请查看the opening part of this article for a great explanation of git trees
答案 1 :(得分: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
中进行修改。