亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

git rebase,跟蹤'本地'和'遠程'

git rebase,跟蹤'本地'和'遠程'

蕭十郎 2019-08-15 14:44:41
git rebase,跟蹤'本地'和'遠程'在進行git rebase時,我常常難以解決在解決沖突時“本地”和“遠程”發生的事情。我有時會產生這樣的印象:他們將一方提交交換到另一方提交。這可能(肯定)因為我還沒有正確理解。變基礎時,誰是'本地',誰是'偏遠'?(我使用P4Merge解決沖突)
查看完整描述

3 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

底線

git rebase

  • LOCAL =你在基礎重建的基礎

  • REMOTE =承諾你正在向上移動

git merge

  • LOCAL =您要合并的原始分支

  • REMOTE =你正在合并的另一個分支

換句話說,LOCAL始終是原始版本,而REMOTE總是那些之前沒有提交過的人,因為它們被合并或重新定位在頂層

證明給我看!

當然。不要相信我的話!這是一個簡單的實驗,您可以自己查看。

首先,確保正確配置了git mergetool。(如果你沒有,你可能無論如何都不會閱讀這個問題。)然后找一個可以使用的目錄。

設置您的存儲庫:

md LocalRemoteTestcd LocalRemoteTest

創建初始提交(使用空文件):

git initnotepad file.txt  (use the text editor of your choice)
  (save the file as an empty file)git add -Agit commit -m "Initial commit."

在非master的分支上創建提交:

git checkout -b notmasternotepad file.txt
  (add the text: notmaster)
  (save and exit)git commit -a -m "Add notmaster text."

在主分支上創建提交:

git checkout masternotepad file.txt
  (add the text: master)
  (save and exit)git commit -a -m "Add master text."gitk --all

此時,您的存儲庫應如下所示:

現在進行rebase測試:

git checkout notmastergit rebase master
  (you'll get a conflict message)git mergetool
  LOCAL: master
  REMOTE: notmaster

現在進行合并測試。關閉mergetool而不保存任何更改,然后取消rebase:

git rebase --abort

然后:

git checkout mastergit merge notmastergit mergetool
  LOCAL: master
  REMOTE: notmastergit reset --hard  (cancels the merge)

您的結果應與頂部顯示的結果相同。


查看完整回答
反對 回復 2019-08-15
?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

我沒有完全解決您的問題,但我認為下圖解決了您的問題。(Rebase:遠程存儲庫--->工作區)

來源:我的Git工作流程


查看完整回答
反對 回復 2019-08-15
  • 3 回答
  • 0 關注
  • 1429 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號