git rebase,跟踪'本地'和'远程'

git rebase,跟踪'本地'和'远程'

在进行git rebase时,我常常难以解决在解决冲突时“本地”和“远程”发生的事情。我有时会产生这样的印象:他们将一方提交交换到另一方提交。

这可能(肯定)因为我还没有正确理解。

变基础时,谁是'本地',谁是'偏远'?

(我使用P4Merge解决冲突)


萧十郎
浏览 1323回答 3
3回答

神不在的星期二

底线git rebaseLOCAL =你在基础重建的基础上REMOTE =承诺你正在向上移动git mergeLOCAL =您要合并的原始分支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)您的结果应与顶部显示的结果相同。

临摹微笑

我没有完全解决您的问题,但我认为下图解决了您的问题。(Rebase:远程存储库--->工作区)来源:我的Git工作流程
打开App,查看更多内容
随时随地看视频慕课网APP