我是git的新手,我想澄清一下我使用git过去几天所做的事情,但我不太确定这是不正确的做法。
所以,我们有origin
(远程存储库)和master
(该存储库的本地分支)
以下是我开始工作的方式:
git fetch origin
//获取origin
(或remote
)git merge origin/master
//将最新代码合并到本地master
git checkout -b newbranch
newbranch
工作了2-3天,我意识到,我应该刷新我的newbranch
,因为其他人可能添加了一些新代码(我相信,术语被称为"反向积分&#34)我最后一步该怎么做?
我相信如果我git fetch origin/git merge origin/master
,那将仅刷新(或反向整合)master
。
如果我执行git fetch origin/git merge origin/newbranch
,那就行不通,我会收到类似' merge: origin/newbranch- not something we can merge
'的消息。
答案 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)
我认为你应该这样做:
git stash
#存储您对本地新分支的更改
git pull --rebase origin/master
#采取本地新分支的最新变化
git stash pop
#pop存储在堆栈中的step1中的更改
如果存在冲突,您应该解决混淆,然后继续工作,直到您推送所有原始更改。
答案 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>
这样可以为您节省一行输入。