我正在开发 VS 2017,我们有云 VSTS / Azure-devops。
我最近提交并推送了...并意识到 8 个文件不应该在其中。
之后我再次提交了一份干净的文件并推入远程。
现在我可以在 VSTS 网站/portail 中看到这两个提交。
问题是我需要创建一个拉取请求,当我尝试创建一个拉取请求时,我发现自己在拉取请求中包含了第一个提交文件......这是我不想要的。
所以我只需要删除我所做的第一个提交,并为第二个干净提交创建拉取请求。我该如何过去?因为我搜索后找不到关于如何做的明确解释?
您可以尝试以下步骤来删除整个提交:
-
Git 将特定分支克隆到本地存储库:
git clone --single-branch --branch branchname https://[email protected] /cdn-cgi/l/email-protection/xxx/0508-t/_git/0508-t
-
Get the SHA您要删除的提交的:
导航https://dev.azure.com/{organization}/_git/{Project}/commits
页面->
选择特定提交 -> 单击More -> 复制完整 SHA。 (参考下面截图)
-
在 git bash 中运行此命令以删除本地存储库中的提交:
git rebase -p --onto SHA^ SHA
只需更换“SHA” 与您想要删除的引用(您从步骤 2 中获得的引用)。该命令中的“^”是字面意思。例如:
git rebase -p --onto 7e5661e7545013145dc7569edbe7c99f4b8d9671^ 7e5661e7545013145dc7569edbe7c99f4b8d9671
-
强制 git 推送到原点:
git push origin +test
注意+
在您要推送的分支名称之前签名,这告诉 git 强制推送。值得一提的是,删除提交时应该非常小心,因为一旦执行,它们就会永远消失。另外,如果您要从远程存储库中删除某些内容,请确保与您的团队协调以防止出现问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)