标签: git-revert

如何恢复 GitHub 上的拉取请求提交

我正在尝试恢复我在 GitHub 上的最新提交。我浏览过的所有信息都表明拉取请求中应该有一个恢复按钮,但我没有看到它,也找不到它。

无论如何,在 GitHub 上可以做到这一点吗?或者我可以使用一些 rebase 命令来完成终端操作吗?

github git-revert

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

恢复 Git 编辑器

我尝试更改 Git 的本机代码编辑器,但没有成功。现在,每当我尝试恢复提交时,都会收到以下错误:

hint: Waiting for your editor to close the file... notepad++.exe -wl1: notepad++.exe: command not found
error: There was a problem with the editor 'notepad++.exe -wl1'.
Please supply the message using either -m or -F option.
Run Code Online (Sandbox Code Playgroud)

我想知道如何重置或删除我所做的尝试修改。

git text-editor git-revert

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

如何从 GIT 恢复旧的 Pull 请求

如果一个 Pull 请求被合并(比如 PR3),并且在这几个 Pull 请求(比如 PR4、PR5 等)之上被合并,这些请求对先前合并的 Pull 请求 PR3 中的同一文件进行了更改,现在我想要恢复 Pull 请求 PR3,Git 不允许我自动执行此操作并给出此错误。

抱歉,此拉取请求无法自动还原。它可能已经被恢复,或者内容可能在合并后发生了变化。

我应该如何恢复拉取请求 PR3?

git github git-revert

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

为什么这次恢复失败了?

在尝试恢复不是我的分支上最新的提交时,我遇到了以下消息:

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

这是git log尝试恢复之前的分支:

C:\git\manager [feature/revert]> gl -n15 --oneline
a81945f (HEAD -> feature/revert, origin/develop, develop) Merge branch 'develop' of https://xyz/manager into develop
60cf3e5 Merge branch '***' into develop
b94fc85 Merge branch '***' into develop
9d81bc6 (origin/***) Accept 
48b318d (origin/***) Accept 
6f57592 ***
d823f1f (origin/***) removed 
854887b *** merged
0ebef20 added 
fce9354 Merged PR 12345: Add 
90f2b0f (origin/***) Add 
c859184 Merge branch '***' into develop …
Run Code Online (Sandbox Code Playgroud)

git git-merge git-revert git-branch

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

Git还原错误消息?

在尝试恢复我对.emacs.d文件夹的存储库的提交时,我收到以下消息:

haziz@haziz> git revert 7fe3f

error: could not revert 7fe3f0b... .emacs.d contents from ubuntu hp 15
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
Run Code Online (Sandbox Code Playgroud)

我想要做的是反转我对init.el文件所做的更改,然后执行另一个我想要撤消的提交.我更愿意还原而不是重置 - 硬,因为据我所知,后者完全删除了最近的提交.我想创建一个新的提交,以便我可以"恢复"恢复.

换句话说,我想要做的就是这个

Git Commits [A]...[B]
Run Code Online (Sandbox Code Playgroud)

将被还原为

Git Commits [A]...[B]...[A']
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?

编辑:我尝试做尽可能最好的差异/合并然后另一个提交,但它仍然给我这个新的错误消息:

haziz@haziz> git revert 7fe3f0ba3182b591f11c0b59e006dc6c990b7470

fatal: Your local changes would be overwritten by revert.
Please, commit your changes or stash them to proceed.
Run Code Online (Sandbox Code Playgroud)

如何在不诉诸.gitigore文件的情况下告诉它忽略(但不删除)未分段文件.我坦率地不关心大多数emacs临时文件等非分页文件.

git git-revert

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

由于重命名,Git revert会创建"由我们删除"的冲突

我正在尝试恢复一个提交,修改了一个已经重命名的文件.

修改过的文件曾经被调用bin/internal/call_parser.rb,并且当前被调用lib/call_parser.rb,并且在尝试进行恢复后我处于我的状态

$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 16 commits.
#
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   other/unrelated/file
#
# Unmerged paths:
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#   deleted by us:      bin/internal/call_parser.rb
#
Run Code Online (Sandbox Code Playgroud)

据我所知,当前版本的lib/call_parser.rb和文件bin/internal/call_parser.br的当时版本应该足够相似,以至于git可以检测到共享内容(我听说过git的工作原理)关于文件内容,而不是文件名).如何让git更加努力地工作以检测重命名,从而恢复到lib/call_parser.rb中的内容?

git git-revert merge-conflict-resolution

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

我如何吹走我解决git冲突的尝试

我检查了'production_branch',然后合并了'master_branch for_production_branch',发生了大规模的冲突.'production_branch'已部署到生产中.但冲突需要更有经验的眼光.我需要在生产分支'production_branch'上获得一个关键补丁(我将手工完成),以便我可以部署.

git co 'production_branch'  # => 
lib/tasks/foobar.rake: needs merge
vendor/plugins/acts_as_syncable/lib/active_record/whatever.rb: needs merge
error: you need to resolve your current index first
Run Code Online (Sandbox Code Playgroud)

git co 'master_branch for_production_branch'
lib/tasks/foobar.rake: needs merge
vendor/plugins/acts_as_syncable/lib/active_record/whatever.rb: needs merge
error: you need to resolve your current index first
Run Code Online (Sandbox Code Playgroud)

如何在工作目录中返回'production_branch',这样我就可以部署一个简单的关键修复程序.

git git-revert

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

一种在单个提交中恢复整个分支的方法

我需要使用这样的单个提交来恢复整个分支:

          [topic]
     o---o---o-------X
    /
   |      [master]
---o---o---o
Run Code Online (Sandbox Code Playgroud)

提交X必须具有类似a master~2(主题分支的原点)的状态

我的解决方案是:

git rev-list --reverse master..topic | while read SHA; do
   git revert -n ${SHA}
done
git commit -m "Reverted topic branch"
Run Code Online (Sandbox Code Playgroud)

有更好(更短)的解决方案吗?

这个目的

想象一下,我有一种几乎基于git-flow的回购.

              [release-3]
       o---o---o---o
      /         \       [fix-for-rc-3]
     /           o---o---o
    /
   |      [development]
---o---o---o
Run Code Online (Sandbox Code Playgroud)

我有一个development分支,即将到来的release-3分支和一个所谓的hot-fix-feature-for-rc-3分支.在这个分支中,我正在做一些丑陋的黑客来完成我的发布,但我根本不想要它,development因为更多"正确"的解决方案已经落在这里,但release-3由于某种原因无法应用于分支.所以,我必须做以下事情......

                                    [release-3]
       o---o---o---o--------------------M
      /         \       [fix-for-rc-3] /
     /           o---o---o----------------X
    /                                      \
   |                                        \[development]
---o---o---o---------------------------------D
Run Code Online (Sandbox Code Playgroud)

我必须合并fix-for-rc-3release-3(点M),然后做一个"revert-all-this-shit"提交(点X)并合并它development(点D)所以这段代码永远不会到达这里,即使那时整个release-3分支也被合并到 …

git git-revert

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

还原后,Git在命令栏中显示(master | REVERTING)

恢复我的代码后,Git在命令栏中显示(master | REVERTING)。我该如何摆脱呢?

git master git-revert

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

git恢复到某些提交,而无需更改历史记录并创建新的提交,例如git revert

有没有一种方法可以还原到某个提交而不更改远程历史记录,基本上像git revert一样撤消对该提交所做的所有更改到一个新提交中?

例如-我有3次提交,提交A-> B-> C,我的头目前在CI上,现在想创建另一个提交D,它将具有与A相同的代码,以便我可以将该提交推送到远程分支而无需更改历史。

git revert git-revert

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