簡體   English   中英

Git推送到具有2個不同分支的2個遙控器

[英]Git push to 2 remotes with 2 different branches

目前,我開始從事以前由另一個使用Git作為版本控制的開發人員工作的項目。 接管項目后,無需創建另一個分支就可以開始對項目進行更改(更改1)。

之后,我知道Change 1不會很快投入生產,而我不得不改為使用另一台登台服務器。 同時,有一些更改需要緊急更改並立即推送到活動服務器(更改2),但是我已經為更改1提交了幾次。更改1的提交已被推送到遠程存儲庫。

所以我的問題是,如何將所有變更1移至分支,並使主分支與生產相同?

解決此問題的一種方法稱為“重寫歷史記錄”,這意味着更改到目前為止所做的提交歷史記錄。 但是,由於您已經推送了變更1的提交,因此通常不建議這樣做,因為如果其他人在這些遠程存儲庫上是最新的,則它們的拉動將有“歷史差異”,這需要手動修復。 。

因此,我要做的就是更改具有Change 1的分支,我們將其稱為change-1 假設您這樣做(以我當前的回購為例):

$ git branch change-1
$ git log -n 10 --oneline
d138aed Report success from deploying the final config
fdc9ce3 Rename some templates
2fa1bb3 Continuing work on deploy progress/failure handling
696e470 Add some UI notices to report deploy queue progress
e72b151 Add skeleton JS file for deploy queue stuff (WIP)
0145a1c Make a start on requesting a final settings FTP/SSH send
aaaf027 Reflect Emails To Send readiness in tab
e84510c Use real system messages, implement screen rendering & removal
e6a8a4f Add a dummy primary announcement, add some logic to receive it
f7df9cd Move the PID location (prior to making container r/o)

這些提交的時間順序相反。 因此,假設change-1aaaf027合並到d138aed含)。 讓我們回到更改之前的要點:

$ git checkout `e84510c`
Note: checking out 'e84510c'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at e84510c... Use real system messages, implement screen rendering & removal

大。 從這一點開始,您可以創建一個新分支,如下所示:

git checkout -b before-change-1

從那里,您可以提交對變更2的提交,並在不進行歷史記錄中的變更1提交的情況下使用它們進行所需的操作。

如果您已經將變更1提交給master (或者直接將變更提交給master ),並且希望從該分支中​​刪除Change 1,那么您需要將master重命名為master-with-change-1 ,然后回退如上所述,然后使用-b從新點創建一個新的master 這可能需要與回購的其他用戶進行一些協調,因為您要從歷史記錄提交中刪除他們可能已經撤消的提交。

暫無
暫無

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

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