2014-09-29 61 views
1

我有硕士和开发分支。GIT - 从分支变更为主变更

在开发分支我有commit1。

问:

如何从commit1(开发)添加更改主分支作为本地修改(uncomitted变化)?

+0

为什么你想要这些改变但没有提交?有几种方法可以完成你想要的任务,最直接的方法可能取决于你为什么要这么做。 – R0MANARMY 2014-09-29 14:56:59

+0

基本上我想从分支中提取并威胁它像本地更改,所以我做了一些更改并将其提交给主。 – 2014-09-30 05:52:19

回答

1

master分支中使用git merge

git merge develop 

如果你想不commit合并,只需添加--no-commit--no-ff

git merge develop --no-commit --no-ff 
+0

我希望看到更改作为uncomited更改(本地更改) – 2014-09-29 10:45:09

+0

@ Ing.MichalHudak回答更新。 – Landys 2014-09-29 10:59:44

0

Git中最常见的工作流程是:只要继续在分支上工作,直到你拥有被完成或错误修复,然后把它合并到父分支(在你的情况)。

但是,如果您确实想要将更改从一个分支转移到另一个分支,则您有几个选项。

  1. 如Landys所述,使用git merge命令。 --no-commit--squash将从另一个分支带来更改,而不实际提交它们。您可能需要执行git reset以取消您刚刚合并的更改。这将带来所有提交的所有更改。
  2. 另一种选择在这里描述:Quick tip: git-checkout specific files from another branch。基本上,您可以使用git checkout来指定要从其他分支签出的特定文件,或者使用修补程序模式(-p)来选择要从其他分支签出哪些更改以及哪些不需要签出。
  3. 如果您在另一个分支上有多个提交,并且您希望仅将其中一个提交到当前分支,则可以使用git cherry-pick使该提交结束,然后使用git reset HEAD~撤消提交cherry-pick而不是修改其中的文件你的工作目录。