我作为一个大型团队的一部分正在使用Azure数据工厂,并遇到了管理合并的问题,这似乎没有意义。
当启动一个新特性时,我们创建一个新的分支,例如,基于'main'的'feature-001'。然后,我们只向该分支添加满足新功能所需的内容,然后向Azure DevOps Git提交PR。
有时会检测到合并冲突。解决此问题的建议是进入VSCode并通过执行以下操作来解决冲突:
克隆下repo(这会拉下最新的“main”)。
验证远程功能-001分支是否存在
git branch -r
它(显然)是:
PS G:\azure\adf\adf-arm> git branch -r
origin/HEAD -> origin/main
origin/feature-001
origin/main
然后做一个:
PS G:\azure\adf\adf-arm> git switch feature-001
Switched to a new branch 'feature-001'
Branch 'feature-001' set up to track remote branch 'feature-001' from 'origin'.
这将创建一个本地分支“feature-001”,跟踪到上游,在那里我们将解决冲突。
接下来,为了查看冲突在哪里,建议我们尝试将“main”合并到“feature-001”分支中:
git merge main
这个想法是,无论是什么阻止'feature-001'被合并到'main'中,都将与阻止'main'被合并到'feature-001'中的内容相同。通过这种方式,我们可以在VSCode中解决合并冲突,但在'feature-001'分支中ON。
然后,当解决时,我们应该将固定分支推回到远程/feature-001分支。当它被推回时,Azure DevOps会检测到更改,重新评估PR,并意识到现在没有合并冲突,PR可以轻松完成。这看起来是一个明智的策略,因为它使任何混乱远离'main',并确保只有合并冲突免费(或固定)提交被合并到'main'由Azure DevOps。
我看到的问题是,当我设置好所有内容并执行时:
git merge main
我明白
G:\azure\adf\adf-arm> git merge main
Already up to date.
这对我来说没有意义,因为很明显,我在“feature-001”中进行了更改,而“main”中没有。它们甚至没有相同的提交ID:
PS G:\azure\adf\adf-arm> git branch -vv
* feature-001 8cc623c [origin/feature-001] Adding pipeline: f001-pipeline
main 1304c11 [origin/main] Update publish_config.json
我知道git会告诉我正确的事情,我错过了一些东西,但我看不到它是什么。有没有好心的灵魂能开导我。。拜托!
1条答案
按热度按时间gopyfrb31#
Already up to date
消息显示当你尝试合并master中已经在你的特性分支中的更改时。我可以想到两种情况下,这种情况可能发生:1.自从你分支出你的特性分支后,master分支没有任何变化。然而,在这种情况下,您不会面临合并冲突,因此这似乎不是您的情况。
1.尚未在本地拉取master的最新更改。当你运行
git merge master
时,它是你操作的本地主机。如果最新的更改不是从原始主机中提取的,您将不会看到这些合并冲突。我倾向于认为你面对的是第二个案例。在执行
git merge master
之前,请运行git pull
以从远程获取最新的更改。