将(git)原点合并到我当前的本地工作分支

时间:2017-09-13 16:24:33

标签: git merge git-merge

我是git的新手,我想澄清一下我使用git过去几天所做的事情,但我不太确定这是不正确的做法。

所以,我们有origin(远程存储库)和master(该存储库的本地分支)

以下是我开始工作的方式:

  1. git fetch origin //获取origin(或remote
  2. 的最新代码
  3. git merge origin/master //将最新代码合并到本地master
  4. 然后我创建了一个新的分支关闭主git checkout -b newbranch
  5. 现在我在newbranch工作了2-3天,我意识到,我应该刷新我的newbranch,因为其他人可能添加了一些新代码(我相信,术语被称为"反向积分&#34)
  6. 我最后一步该怎么做?

    我相信如果我git fetch origin/git merge origin/master,那将仅刷新(或反向整合)master

    如果我执行git fetch origin/git merge origin/newbranch,那就行不通,我会收到类似' merge: origin/newbranch- not something we can merge'的消息。

4 个答案:

答案 0 :(得分:1)

newbranch应该是当前分支,以确保您可以结帐,然后使用fetch从您的repo更新,然后将newbranch与master合并

关于结帐:您目前正在使用的分支已经结帐。要切换到另一个分支,您需要签出它。如果您已经在分支机构工作,则不需要结帐。

git checkout newbranch
git fetch
git merge origin/master

而是合并你可以使用rebase,在这种情况下应该替换最后一行

git rebase origin/master

合并和rebase只是使用来自其他分支的信息更新您的分支。合并从master获取提交并将它们添加到您的分支。 Rebase通过一种不同的方式做了同样的事情。见Merging vs. Rebasing。现在只需忘记rebase,只需要合并。

答案 1 :(得分:1)

我认为你应该这样做:

  1. git stash#存储您对本地新分支的更改

  2. git pull --rebase origin/master#采取本地新分支的最新变化

  3. git stash pop #pop存储在堆栈中的step1中的更改​​

  4. 如果存在冲突,您应该解决混淆,然后继续工作,直到您推送所有原始更改。

答案 2 :(得分:0)

git pull --rebase origin <branch name> 

它将获取该分支的所有提交并将您的提交置于其上。

答案 3 :(得分:0)

我会推荐这个序列:

rebase

第一次合并通常会导致快进,因此没有合并冲突。我强烈建议不要盲目使用任何使用git pull的解决方案:这会重写历史记录,https://codecentric.github.io/spring-boot-admin/1.4.3/#spring-boot-admin-client

由于git fetch ; git merge# bring master up to date git checkout master git pull # bring newbranch up to date git checkout newbranch git merge master 相同,您也可以这样做:

<script src="popup.js"></script>

这样可以为您节省一行输入。