簡體   English   中英

如何合並本地和遠程分支之間的更改?

[英]How to merge changes between local and remote branch?

我的git倉庫中有2個分支:

  capsule-os
* remotes/m/ics

capsule-os是分支,本地更改為remotes / m / ics分支。 我使用(並構建)capsule-os分支,但是有時remotes / m / ics會更新,並且我想將此更改與本地分支同步(實際上,將更改添加到此遠程分支)。 我該怎么辦?

Amber的答案是正確的,但我認為可能有必要使用重新定級而不是合並的替代方法來添加答案。

如果您尚未發布capsule-os分支,則可能希望將更改“基礎”到更新的m/ics分支,例如使用:

# Make sure you're on the right branch:
git checkout capsule-os

# "Replay" all of your commits on top of m/ics, and update
# capsule-os to point to the result:
git rebase m/ics

(然后,您可能必須解決一些沖突-如果您不能輕易做到這一點,則可以將您的capsule-os分支放回原來使用git rebase --abort 。)

作為替代方案,您可以獲取ics分支的新版本,並通過以下方法一次性基於該分支:

git pull --rebase m ics

有很多使用git rebase的不同方法,但是它們實質上都涉及一組提交,對於每種提交,都嘗試將提交的更改重新應用到其他提交上。 這通常用於將一組提交“移動”到更新的上游分支上,以保持歷史記錄簡單。

我之所以用“如果您還沒有發布capsule-os分支”來限定它的原因是,重寫分支的歷史記錄可能會對正在使用該分支的原始版本的協作者造成困難。 但是,如果仍然是私人工作,則重新定基是使分支與上游保持最新狀態並保持歷史記錄簡單的好方法。

假設您的遙控器名為m

git pull m ics

http://gitref.org/remotes/#pull

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM