标签: git-revert

Git还没有恢复早先的状态

所以很久以前我在我的项目中添加了一个带有一组文件的文件夹abc,并使用修订版xyz进行了提交.经过多次提交,有人用git rm -r abc删除了该文件夹.在此之后,还有很多提交.

现在我需要取回文件夹abc.我做

git revert xyz
Run Code Online (Sandbox Code Playgroud)

在此之后,我可以找到文件夹xyz,但不存在提交xyz中添加的所有文件.

我究竟做错了什么?我不想重置,因为我想保持提交xyz和现在之间的历史.

git git-revert

2
推荐指数
1
解决办法
114
查看次数

如何让我完成的更改一次提交回来?

我对本地 git fork 进行了很多更改,我这样做:

  1. git add -A
  2. git commit -m "commit message"
  3. 从上游主站拉取更改
  4. 变基
  5. git push到我的起源

现在碰巧在我之前的提交和新的提交之间还有其他几个提交(来自其他人)。

我希望看到我在新提交中所做的所有更改并对其进行处理。所以,我愿意

git reset --soft <my previous commit>
Run Code Online (Sandbox Code Playgroud)

它显示了我和其他人修改的文件。

问题:

  1. 如何查看仅由我修改的文件?
  2. 然后文件显示为已修改,是否可以取消暂存它们?我想在做的时候看到变化git diff

git git-revert git-commit unstage

2
推荐指数
1
解决办法
2407
查看次数

如何在 Git Kraken 中恢复多次提交?

我知道您可以还原单个提交并右键单击提交并单击还原。但是有没有办法恢复多个提交(比如单个分支上的最新五个提交)?

git git-gui git-revert gitkraken

2
推荐指数
1
解决办法
1416
查看次数

git revert remote to a specific commit with a merge 不适用于 -m

我正在尝试将我们的远程仓库恢复到之前的提交。树如下图所示:

在此处输入图片说明

这个想法是我们想要回到那个提交,而不需要任何从 master 分支拉出来的人必须处理重置回 commit 会出现的问题2dda031。所以我git revert改用了。

我正在尝试通过使用来做到这一点 git revert --no-commit 2dda031..HEAD

但是,我收到此错误:

error: commit d064f7c3b04a2bda30c43a32afac822c6af633c0 is a merge but no -m  option was given. 
fatal: revert failed
Run Code Online (Sandbox Code Playgroud)

这是预期d064f7c的合并(也是47d4161)。所以按照这里的建议我这样做:

git revert --abort
git revert --no-commit -m 1 2dda031..HEAD
Run Code Online (Sandbox Code Playgroud)

然后我收到错误消息:

error: mainline was specified but commit cb420e0 is not a merge.
fatal: revert failed
Run Code Online (Sandbox Code Playgroud)

所以我只是觉得我在循环。有人可以告诉我恢复到该提交的正确方法(同时恢复历史记录)吗?

git github git-revert

2
推荐指数
1
解决办法
871
查看次数

Tortoise Git - “将“master”重置为此”不起作用

我正在尝试将我的存储库倒回一些提交。

打开提交日志后,我选择要倒回的提交,然后Reset "master" to this...,然后Hard: Reset working tree and index

当再次打开日志时,所有后来的提交确实都消失了。

但是当我从 clean 中提取存储库时,它们又回到了那里。

这个任务过去对于 Subversion 来说很简单(不过,并没有完全删除一堆提交,只是恢复到以前的提交,除非您选择上一个提交,即最近的提交之前的提交,否则它不会显示在 Tortoise Git 菜单中)。

知道如何实现我的目标吗?

git tortoisegit git-revert

2
推荐指数
1
解决办法
3372
查看次数

新Git分支没有先前提交的更改

我目前的分支看起来像:

     D  
    /
H--A--B--C  
Run Code Online (Sandbox Code Playgroud)

我试图找出如何生成一个新的git分支,这将使新的git repo看起来像:

     D  
    /
H--A--B--C  
    \
     C  
Run Code Online (Sandbox Code Playgroud)

这可能吗?我想过使用重置,但这意味着C的变化也会丢失,所以寻找替代方案.

git branch repository git-revert

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

撤消 git add、commit 和 push 而不会丢失未跟踪的文件

我不小心添加、提交并将我所有未跟踪的文件推送到远程存储库,在那里它们会令我的合作者烦恼。

从那以后,我还进行了另外两次提交,其中一次是通过 git pull 与远程合并。

我想撤消这一系列操作并将我的目录恢复到以前的状态(包括未跟踪的文件)。

使用我尝试过的所有命令(签出、还原、重置、变基),我的未跟踪文件由于撤消提交而丢失。

我该怎么办?

git undo git-rebase git-revert git-reset

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

git revert 是否也使用 3 路合并?

当我运行时git revert,可能会发生冲突。git 是否依赖于 3 路合并,如问题合并内部(参见下表)中所述,也适用于revert

在此处输入图片说明

恢复的合并基础是什么?在使用 git 和 meld 进行交互式变基的 3 向合并中的三个文件是什么?这很清楚,但很难想象这是一个还原。

A - B - C - D - C^-1
Run Code Online (Sandbox Code Playgroud)

(如果我想C在最后恢复。)

git merge revert git-revert 3-way-merge

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

Git仅在本地存储库中还原公共提交

假设有一个公共提交“ xxxx”,我认为这引起了一个错误,并且我想在本地进行恢复该提交的实验。

如果我从文档正确认识git revert12),它的作品了恢复目标提交XXXX需要的变化,自动和推动他们到公共仓库。那是对的吗?这是我担心的最后一部分。

即将git revert xxxx还原公共存储库中的xxxx?

如果是这样,有没有办法仅在我的本地工作文件夹中执行此操作,以便我可以构建具有还原的提交的HEAD副本并进行试验,而不会影响其他开发人员?

我是否需要使用--no-commit选项:git revert xxxx --no-commit

还是有另一种方法我应该这样做?

谢谢。

git version-control git-revert

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

Azure Devops Repos - 恢复到以前的提交,就像最近的提交一样从未存在过

我知道你可以恢复到以前的提交,但听起来历史不会消失。如何恢复到之前的提交并确保之后的提交永远消失?

git azure git-revert azure-devops azure-repos

1
推荐指数
2
解决办法
3906
查看次数