在我做出更改后,如何在新分支中进行git提交?

时间:2015-06-14 19:40:20

标签: git git-commit git-checkout

我知道启动新分支的命令是

git checkout -b <mybranch>

但是,假设我在进行我想要提交的新更改之前已经有远见创建了新分支。

但通常情况并非如此。通常,我开始编码,然后可能会或可能不会git add . 然后想要在新分支中提交。我该怎么做?

3 个答案:

答案 0 :(得分:2)

做到这一点:

git checkout -b <new_branch>

你会看到的是这样的东西:

git checkout -b new_branch
M   <changed_file>
Switched to a new branch 'new_branch'

你没有对Git做任何贡献;使用git add,您只将文件移动到暂存状态。您仍然可以使用分段工作创建新分支。任何尚未上演的变更都将有机会在新分支上上演。

答案 1 :(得分:1)

继续创建新分支,它实际上将当前分支上的内容“保存”到新分支。

如果您在理想的位置启动新分支,请切换回上一个分支并“撤消”您最近的操作,将第一个分支恢复到您希望的位置。

(如果它只是一些东西 - 命令z,或者可能回到之前的提交,或者从Github上的最后一个版本重新提取。)然后git添加并提交第一个分支,你可以切换回第二个继续工作。

也许不理想,但我已将它用作解决方法。

答案 2 :(得分:1)

这里重要的是:Git分支本身不包含任何文件或修订。分支只是指向某个提交的指针。 当您创建一个新分支时,它会从当前分支指向提交。两者将始终(好,几乎总是)共享共同历史记录,但在创建后可能会分歧。

分支带来一些实用功能:

  • 您可以通过其名称签出分支(但您也可以通过其sha1以及其他许多方式签出提交)
  • 说,分支指向提交A.当您在该分支中运行git commit时,会创建一个新的提交B,它指向A.而分支现在指向B,即新的最近提交。 / LI>
  • 分支可以更容易地显示开发路径并将它们视为抽象对象。
  • 分支可以更轻松地合并修订。 (虽然它也可以合并原始提交)。

为了更好地理解它们,我recommend you this course,我自己。 (对我推荐有关SO的教程感到羞耻:)