如何从另一个分支(开发)更新我的工作Git分支?

时间:2014-10-01 09:09:26

标签: git github branch git-merge

我在一个月前为我的代码创建了一个新分支,我从 develop 分支创建了 feature1 分支。

⇒  git branch 
  develop
* feature1

我已经在 feature1 上工作了一个月,并且很多更改都推送到 develop 分支,如何更新我当前的分支 feature1 开发的最新提交?

我不想结帐主人并合并我的 feature1 分支。我不想使用 git cherry-pick 手动将提交从开发转移到feature1。

有任何帮助吗?

9 个答案:

答案 0 :(得分:58)

您只需将develop合并到feature1:

git checkout feature1
git merge develop

不需要涉及另一个分支,例如master。

答案 1 :(得分:9)

首先更新您的开发分支,然后签出您的功能并将其合并。

git checkout develop
git pull
git checkout feature/myfeature
git merge develop
   or  git rebase develop

完成时进行推送(例如用于请求请求)

git push origin feature/myfeature

与git rebase之间的区别是rebasekeep保留了分支中的所有提交历史记录,如果您的部分提交包含很多有趣的内容,则这一点很重要。在某些团队中此选项是必需的。

答案 2 :(得分:4)

此用例对保持PR分支的更新非常有帮助。首先,我建议您首先获取您的远程更改,即git fetch 然后从develop,但从远程站点,例如

,合并或重新定位
git rebase -i origin/develop

git merge origin/develop

这样,您将无需在分支之间来回移动即可更新PR分支。

答案 3 :(得分:1)

BRANCHS:

DEV ====>开发

feature1 ====>工作


步骤1 从站点进行GIT发送

检查您要同步的分支

git status

添加提交文件

git add .

提交说明

git commit -m "COMMENT"

发送到您已同步的分支

git push

第2步 与DEV同步更新的工作分支(开发)- 将工作分支与开发分支同步(更新开发分支)

与遥控器同步并切换到DEV分支

git checkout DEV

请求合并要与Feature1分支同步的分支

git merge feature1

将当前分支与feature1分支合并

git push

第3步 GIT查找远程-从更新的开发分支更新工作分支

连接到参考分支

git checkout DEV

搜索更改

git pull

与您的工作分支同步

git checkout feature1

请求合并与DEV分支同步的分支

git merge DEV

将当前分支与DEV分支合并

git push

答案 4 :(得分:0)

使用结帐而不合并来获取特定文件或从特定提交中获取内容,我尝试过这种方式,它可以正常工作!

{{1}}

source

答案 5 :(得分:0)

为避免使用简单的合并来开发提交,我发现特别是如果您已经按下,则更容易( techier 则更简单) >:

  1. 进行开发变更,并确保您已完成最新变更
  2. 从develop feature1_b
  3. 创建另一个分支
  4. feature1合并到feature1_b
  5. 如果想要原始的feature1,请删除

因此,当您将feature1_b的PR进行开发时,它将仅具有您的新更改,而没有整个提交的历史记录。

如果您尚未推送,那么@stackdave的答案将是一个不错的答案。

答案 6 :(得分:0)

$ git checkout <another-branch> <path-to-file> [<one-more-file> ...]
$ git status
$ git commit -m "Merged file from another branch"

答案 7 :(得分:0)

如果您不希望 develop 头和 feature1 头将两者合并为 feature1,而是希望在“更新”{{ 1}} 分支与来自 feature1 的最新编辑,使用无快进

develop

我个人尝试在每次执行合并时使用 git pull git co feature1 git pull git merge --no-ff develop git push ,因为在我看来它可以保持历史记录非常干净。

答案 8 :(得分:-1)

  1. git checkout develop
  2. git pull 3.git checkout localbranch

然后根据您的要求运行合并或变基

  1. git merge develop
  2. git rebase develop