如何使用git分支进行项目功能?

时间:2015-07-27 11:02:46

标签: git git-branch

我(单独)在一个需要添加几个功能的项目上工作。 我曾经为每个功能创建一个分支。一旦开发了该功能并进行了充分测试,我就将该分支功能与主分支合并。

现在,我在branch-A上启动了一个未完成的功能(让我们称之为功能A)。 但是,我迫切需要创建一个新功能B并在完成功能A之前将其推送。这就是我创建branch-B并切换到它的原因。

但是,运行git status命令,我可以看到我在分支A中所做的所有更改。我不明白这种默认行为。我希望看到"没有变化"因为他们是不同的分支。我绝对需要分支B中的提交忽略我在分支A中进行的所有操作。

我错过了什么?我怎样才能创建合适的工作流程?

3 个答案:

答案 0 :(得分:2)

您尚未将更改提交到branch-A并切换为branch-B,因此您收到了所有这些混乱。

要避免此行为,请将更改永久提交到branch-A或暂时提交stash

答案 1 :(得分:0)

您可能会看到branch-A的更改,因为您还没有提交更改。在分支之间切换时,不会删除未跟踪的更改。

执行以下操作:

# Switch back to branch-A
git checkout branch-A

# Check the status
git status

# Add all of the changes
git add .

# Commit the changes
git commit -a

# Switch back to branch-B
git checkout branch-B

# Check git status
git status

如果您想暂时提交更改(并且不想使用git stash),则可以从branch-A创建新分支:

# Switch back to branch-A
git checkout branch-A

# Create a new branch
git checkout -b branch-A-temp

# Add all of the changes
git add .

# Commit the changes
git commit -a

# Switch back to branch-B
git checkout branch-B

# Check git status
git status

您可以稍后返回branch-A-temp并继续处理更改。完成后,您可以将它们合并到branch-A

学会自由使用分支 - 它们重量轻且易于使用。如果你想尝试一些东西,为它创建一个分支。它们可以最大限度地降低丢失更改的风险,并且您仍然拥有完整的历史记录,可以来回合并等等。分支机构非常适合这种工作。

答案 2 :(得分:0)

我认为您在branch B期间创建了新的branch A。这将创建以branch B为基础的branch A。您必须在branch B内创建master。或者只是使用此命令

git checkout -b new-feature master