Git 我的分支中的代码没有合并回主分支,为什么没有?

Git 我的分支中的代码没有合并回主分支,为什么没有?,git,azure-devops,Git,Azure Devops,我一直在为一个客户开发一个网站。我正在Azure DevOps服务上使用Git。我一个人在做这件事,虽然我在git上做了很多自我训练,但我还是个新手。由于我是一个人工作,我没有机会练习用git进行分支和合并。为了开始进行客户希望完成的更改,我进行了分支。以下是my Azure DevOps Repos部分为此项目提交的图片: 在提交5D22D时,我开始进行所需的更改。然后在提交10e7b46c时,我将功能分支中的更改合并回主分支 或者至少我认为我就是这么做的。我发布了一个git签出功能分支,做

我一直在为一个客户开发一个网站。我正在Azure DevOps服务上使用Git。我一个人在做这件事,虽然我在git上做了很多自我训练,但我还是个新手。由于我是一个人工作,我没有机会练习用git进行分支和合并。为了开始进行客户希望完成的更改,我进行了分支。以下是my Azure DevOps Repos部分为此项目提交的图片:

在提交5D22D时,我开始进行所需的更改。然后在提交10e7b46c时,我将功能分支中的更改合并回主分支

或者至少我认为我就是这么做的。我发布了一个
git签出功能
分支,做了一个
pull
操作,只是为了确保我在本地拥有最新的功能。我看到了我在5D22D中输入的所有代码。但是当我做了一个
git checkout master
并做了另一个
pull
时,它看起来和我分支到功能分支之前的情况一模一样


我肯定我做错了什么。也许我的想法是错误的,但我不知道我做错了什么,也不知道如何纠正它。我很高兴我没有删除那个功能分支!我假设我仍然可以,以某种方式,将我在feature分支中所做的更改返回到master分支中。我该怎么做呢?

通常的“合并回主控”命令集应该是:

git switch master
git merge feature
git push
(注:与Git 2.23+一起使用) 此时,您应该在
master
中看到您的功能部件代码
一个
git日志--decoration--oneline--graph--all--branchs
应该显示您在master的头部,有两个父级(一个来自
master
,一个来自
功能


如果不是这样,则合并本身可能没有遵循命令的确切顺序。

通常的“合并回主控”命令集应该是:

git switch master
git merge feature
git push
(注:与Git 2.23+一起使用) 此时,您应该在
master
中看到您的功能部件代码
一个
git日志--decoration--oneline--graph--all--branchs
应该显示您在master的头部,有两个父级(一个来自
master
,一个来自
功能


如果不是这样,则合并本身可能没有遵循命令的确切顺序。

您说您执行了
git pull
操作,但没有引用使用的确切命令。这个确切的命令在这里可能会有所帮助……您检查过Azure DevOps Repos中的主分支吗?我想确认问题是由于pull请求失败还是git pull命令失败。很抱歉,@torek,我一直在解决其他问题,所以直到现在才看到您的问题。当我发出
git pull
命令时,这就是我为该命令指定的全部内容。@JaneMa MSFT好建议。我刚刚检查了Azure DevOps repo中的代码。主分支中的代码错误。它在feature分支中没有任何代码。我推错了。我正在使用VS代码。我对VS代码做了什么错误?如果VonC的建议是正确的,我可以尝试用posh git来做。我从未见过git switch[branch]命令,所以我不确定。好的,
git pull
没有附加参数意味着:从我的上游存储库中获取,然后与我的上游进行合并(或者重新设置基础,如果配置为重新设置基础而不是合并)。所以这取决于(a)你在哪个分支上,和(b)该分支的上游是什么:
master
的上游通常是
origin/master
,而像
feature
这样的功能分支的上游通常是
origin/feature
。你说你做了一个
git pull
操作,但你没有引用所使用的确切命令。这个确切的命令在这里可能会有所帮助……您检查过Azure DevOps Repos中的主分支吗?我想确认问题是由于pull请求失败还是git pull命令失败。很抱歉,@torek,我一直在解决其他问题,所以直到现在才看到您的问题。当我发出
git pull
命令时,这就是我为该命令指定的全部内容。@JaneMa MSFT好建议。我刚刚检查了Azure DevOps repo中的代码。主分支中的代码错误。它在feature分支中没有任何代码。我推错了。我正在使用VS代码。我对VS代码做了什么错误?如果VonC的建议是正确的,我可以尝试用posh git来做。我从未见过git switch[branch]命令,所以我不确定。好的,
git pull
没有附加参数意味着:从我的上游存储库中获取,然后与我的上游进行合并(或者重新设置基础,如果配置为重新设置基础而不是合并)。因此,这取决于(a)你在哪个分支上,以及(b)该分支的上游是什么:
master
的上游通常是
origin/master
,而像
feature
这样的功能分支的上游通常是
origin/feature
,由APress出版。它没有提到一个
git开关
命令。这是第二版,这就是为什么它没有提到git switch的原因吗?@Rod是的,这本专业的git书现在已经很旧了。git开关仍然被认为是实验性的。但是它非常可靠,而且比git checkout更准确。VonC,我看了Scott Chacon和Ben Straub的Pro git书,由APress出版。它没有提到一个
git开关
命令。这是第二版,这就是为什么它没有提到git switch的原因吗?@Rod是的,这本专业的git书现在已经很旧了。git开关仍然被认为是实验性的。但是它比git checkout更可靠、更准确。