标签: git-revert

为什么我的推送中突然出现合并提交?

好吧,我好像把一些事情搞砸了。

直到最近,我曾经能够进行合并提交,然后推送到原点,而无需显示单独的提交。现在,我在管道中只能看到合并提交:

管道在之后提交

在此开始之前,仅手动提交被推送到原点(或至少显示为这样):

管道提交之前

这是行为更改后的团队资源管理器(VS 2019 v16.6.5):

团队探索者

...这是我当地的分支机构历史:

分行历史

看到变化了吗?

a13adadf这一切都是在我恢复提交、修复并重新发布之后开始的。现在我遇到了某种奇怪的分支效应,我不知道如何让事情回到之前的状态。(我尝试研究这个问题,但是在搜索与 相关的任何内容时,信噪比非常低merge commit。)

如何让我的存储库“忽略”(即停止显示)合并提交?

(注意:我是唯一参与此存储库的开发人员。)

git git-merge git-revert team-explorer git-commit

5
推荐指数
1
解决办法
2404
查看次数

推送失败后如何撤消提交?

我打算在 dev 分支中测试一些东西(只是版本号 0.1 --> 0.2),所以我提交了更改,但我没有权限直接将其推送到 dev,然后我创建了一个功能分支,我发现数字已经是0.2,然后我将其更改为0.3并推送此分支,然后创建一个合并请求将其合并到dev中。

我是 git 的新手,只是想知道将来如何防止这种混乱?推送被拒绝后如何恢复我的提交?

git github git-revert git-commit gitlab

5
推荐指数
1
解决办法
9361
查看次数

如何删除推送的 git merge 提交

我将几个开发提交合并到我的存储库的主分支中,只是为了发现 GitAhead 在某个时候搞砸了主分支。

现在我尝试了 SO 上描述的各种方法来撤消这些提交(除了 master 上的合并之外没有其他提交)。这样master确实被重置到了早期版本。

但是,我仍然拥有无头分支中的完整合并历史记录(图像上的灰色路径):

在此输入图像描述

我尝试恢复、重置分支等,但没有成功,唉!

如何完全删除提交(c518859ce4、7574f10f68)?

git git-revert git-commit

5
推荐指数
1
解决办法
1万
查看次数

撤消git或tortoisegit中的revert

是否有一种简单的方法来撤消tortoisegit还原?

这里有更多信息:我刚刚提交了一个大型的多文件签入,之后我决定在大版本之前提交一个单独的小签到,以便更容易修改明天的大签入.

所以我提起登录tortoisegit,右键点击最后一次检查,然后选择"恢复".这解决了更改并删除了我工作目录中的一堆文件.我真正想要的是"重置"(回滚签到并按原样保留我的工作目录),而不是恢复(在我的工作目录中创建"撤销签入").

如何撤消我的恢复?

git tortoisegit git-revert

4
推荐指数
2
解决办法
8111
查看次数

将推送的分支恢复为具体提交

我已将dev分支(具有常量,有时不稳定的更改)合并到我们的主分支(我们存储已发布的稳定代码).我想将master分支恢复到之前的状态,就像从未发生与dev分支的合并一样(并且在将来我们合并dev分支时,我们现在将丢弃的所有更改将再次"合并").

这是主分支的当前状态,我希望它在HEAD上具有'professional-1.1.2'提交/标记.

主分支的状态

我试过了:

$ git revert -n professional-1.1.2..HEAD
fatal: Commit 9167e846a387c793edbc089c7ab6bd9eb8260456 is a merge but no -m option was given.
$ git revert -n -m 1 professional-1.1.2..HEAD
fatal: Mainline was specified but commit 380169097f35d07466640bc0db1b639278cd25fa is not a merge.
$ git revert -n -m 2 professional-1.1.2..HEAD
fatal: Mainline was specified but commit 380169097f35d07466640bc0db1b639278cd25fa is not a merge.
Run Code Online (Sandbox Code Playgroud)

经过一些研究后,我认为更好的选择是做一个git reset --hard professional-1.1.2git push --force作为Git的答案:如何忽略快进并将原点[branch]恢复到之前的提交?或者还原push'd git commit.其他开发人员在同一个办公室,他们永远不应该承诺任何东西(因为我不应该,但是......是的,我们没有每个分支的权限),所以告诉他们并做任何事都不是一个大问题需要采取的行动.

所以最后的问题是:git revert something或者git …

git git-revert git-reset

4
推荐指数
2
解决办法
9740
查看次数

如何退出某些推动力

我正在看最近10次推进,我想退出其中的4个(不连续).

我怎样才能做到这一点?

在SVN中,这将是一个恢复变化并推回"撤消"更改的问题.不确定如何在Git中执行此操作.

git git-revert

4
推荐指数
1
解决办法
2889
查看次数

如何将包含已恢复提交的 master 合并到分支

我有初始状态的主分支:

touch file
git add file
git commit -m "initial"
Run Code Online (Sandbox Code Playgroud)

然后我做了一些改变:

echo "123" >> file
git commit -am "feature1"
Run Code Online (Sandbox Code Playgroud)

这确实属于一个功能分支,所以我分支了:

git branch TEST
Run Code Online (Sandbox Code Playgroud)

并恢复了主人的变化(我不知道这是否是最好的方法,但它做了当时需要的东西):

git revert <last commit hash>
Run Code Online (Sandbox Code Playgroud)

然后我在功能分支上做了一些更改:

git checkout TEST
echo "456" >> file
git commit -am "feature 1 continued"
Run Code Online (Sandbox Code Playgroud)

现在我在将 master 合并到它时遇到了问题。我想要的是能够将 master 中的所有未来更改合并到 TEST 分支并保留我的功能分支更改。

代码已经推送到远程。

git git-revert merge-conflict-resolution

4
推荐指数
1
解决办法
733
查看次数

如何在Git中多次提交后撤消文件中的更改?

我在一个分支上工作,我在几次提交中更改了文件A,现在我想从它恢复所有更改,以便文件A的状态与我第一次创建分支时的初始状态相同.实现这一目标的最简单方法是什么?

git git-revert

4
推荐指数
1
解决办法
514
查看次数

RStudio 恢复按钮似乎就像 Git 重置

我对 RStudio 和 Git 很陌生,所以我想确保我正确理解我在做什么。

Git 文档说这git revert会创建一个新的提交。当我按下 RStudio 恢复按钮时,没有创建新的提交,它只是回到上次提交。对我来说,这似乎是一个git reset --hard. 我做错了什么吗?

git git-revert git-checkout git-reset rstudio

4
推荐指数
1
解决办法
1564
查看次数

Git还原了几个提交

我已经向我的本地分支做了几次提交estimation并将它们推送到远程分支estimation.

现在,我想完全删除最后3次提交.

我试着做git reset HEAD^,并git reset HEAD --hard3次,但是当我试图推动的变化,它抱怨不对齐头部尖.

我该怎么做?

编辑:

历史如下:

commit e572aab4e18

commit e21e7310bc4

commit 4f372a513da

commit 31a4ac607ae

commit a1a6e3f02dd

我想删除前4并返回commit a1a6e3f02dd并在同一HEAD上创建本地和远程分支.

git git-revert git-reset

4
推荐指数
1
解决办法
3510
查看次数