簡體   English   中英

如果我將工作合並到主數據庫但沒有推送后,有人將新提交提交到git存儲庫的主數據庫,該怎么辦?

[英]What shall I do if someone pushed new commits to master of git repository after I merged my work to master but didn't push?

我剛剛開始使用GIT。 考慮一個只有兩個開發人員的非常小的團隊:devA和devB。

這是場景:

  1. 它們都基於提交ver-01進行工作。
  2. DevA提交了ver-02,並推送到了中央倉庫。
  3. DevB推送了他/她的ver-03,但失敗了,因此devB取得了主服務器,現在有了一個包含ver-03的主服務器和一個包含ver02的origin / master。 他/她將母版與原版/母版合並,現在具有包含ver-02和ver-03的ver-04,然后將其正常推送到中央存儲庫。

我想知道的是,當DevB合並代碼時,DevA推出了另一個版本05。 因此,在DevB將其母版與原件/母版合並之后,他/她仍然無法推動,因為他/她必須解決04-04版和05-04版之間的沖突。 如果我是DevB,則運行了“ git fetch origin master”,但是我應該運行哪個命令來合並? 我嘗試了“ git merge origin master”,但它告訴我“已經是最新的。”,但是當我推送它時失敗了。

我發現實際上有3個分支:

  • 主人->包含我的更改,即ver-03
  • 源/主->包含最新的遠程更改,版本為05
  • HEAD-> origin / master->包含ver-04,它是從ver-02和ver-03合並而成的。

接下來我該怎么辦?

首先,我將使用以下命令備份我的工作:git checkout -b backup

返回主站:git checkout主站

從遠程拉出並解決沖突:git pull

推送更改:git push

我強烈建議您在分支機構上工作(並避免像這樣直接推向高手):

git checkout -b功能(創建新分支並對其進行簽出)git push -u origin功能(將分支推送到遠程)git commit -am“ Commit1”

現在,您有兩個選擇(位於功能分支上):git rebase master(如果您獨自在此分支上工作)或git merge master(如果其他人也使用該分支)

解決沖突

git checkout master(移至主菜單)

git merge功能(將分支合並到master)

git推


如果您對母版進行了少量更改,則可以:

git stash(將您的工作保存在存儲中)

git pull(將遠程更改帶到本地)

git stash apply(將您的更改應用於遠程更改)

解決沖突

git commit -m“消息”

git推

暫無
暫無

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

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