相关疑难解决方法(0)

如何将Git存储库还原为以前的提交

如何从当前状态恢复为在某个提交时创建的快照?

如果我这样做git log,那么我得到以下输出:

$ git log
commit a867b4af366350be2e7c21b8de9cc6504678a61b`
Author: Me <me@me.com>
Date:   Thu Nov 4 18:59:41 2010 -0400

blah blah blah...

commit 25eee4caef46ae64aa08e8ab3f988bc917ee1ce4
Author: Me <me@me.com>
Date:   Thu Nov 4 05:13:39 2010 -0400

more blah blah blah...

commit 0766c053c0ea2035e90f504928f8df3c9363b8bd
Author: Me <me@me.com>
Date:   Thu Nov 4 00:55:06 2010 -0400

And yet more blah blah...

commit 0d1d7fc32e5a947fbd92ee598033d85bfc445a50
Author: Me <me@me.com>
Date:   Wed Nov 3 23:56:08 2010 -0400

Yep, more blah blah.
Run Code Online (Sandbox Code Playgroud)

如何从11月3日恢复提交,即提交0d1d7fc

git git-revert git-checkout git-reset

7278
推荐指数
42
解决办法
549万
查看次数

如何强制"git pull"覆盖本地文件?

如何强制覆盖本地文件git pull

方案如下:

  • 团队成员正在修改我们正在处理的网站的模板
  • 他们正在向images目录添加一些图像(但忘记在源代码管理下添加它们)
  • 他们稍后通过邮件发送图像给我
  • 我在源控件下添加图像并将其与其他更改一起推送到GitHub
  • 他们无法从GitHub中提取更新,因为Git不想覆盖他们的文件.

这是我得到的错误:

错误:未经跟踪的工作树文件'public/images/icon.gif'将被合并覆盖

如何强制Git覆盖它们?这个人是设计师 - 通常我会手动解决所有冲突,因此服务器具有他们只需要在他们的计算机上更新的最新版本.

git version-control overwrite git-pull git-fetch

6654
推荐指数
46
解决办法
427万
查看次数

如何还原已经推送到远程分支的合并提交?

git revert <commit_hash>单独行不通.-m必须指定,我对它很困惑.

以前有人经历过吗?

git

827
推荐指数
12
解决办法
60万
查看次数

回滚Git合并

develop branch
--> dashboard (working branch)
Run Code Online (Sandbox Code Playgroud)

git merge --no-ff develop用来将任何上游更改合并到仪表板中

git日志:

commit 88113a64a21bf8a51409ee2a1321442fd08db705
Merge: 981bc20 888a557
Author: XXXX <>
Date:   Mon Jul 30 08:16:46 2012 -0500

    Merge branch 'develop' into dashboard

commit 888a5572428a372f15a52106b8d74ff910493f01
Author: root <root@magneto.giveforward.com>
Date:   Sun Jul 29 10:49:21 2012 -0500

    fixed end date edit display to have leading 0

commit 167ad941726c876349bfa445873bdcd475eb8cd8
Author: XXXX <>
Date:   Sun Jul 29 09:13:24 2012 -0500
Run Code Online (Sandbox Code Playgroud)

合并中有大约50多个提交,我想知道如何恢复合并,以便仪表板回到合并前的状态

第二部分是,如果我没有合并--no-ff,我没有得到提交' 合并分支'开发'到仪表板 '..我怎么会回滚合并?

git

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

通过拉取请求撤消合并?

有人接受了他们不应该提出的拉动请求.现在我们已经合并了一堆破碎的代码.你如何撤消拉取请求?我只是要在合并之前将更改还原到提交,但我注意到它在一堆提交中合并.所以现在在合并之前几天就有来自这个人的所有这些提交.你怎么撤消这个?

git merge github pull-request

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

撤消上次提交/合并

我把我的git repo搞砸了一下.我在一个单独的分支中处理了一个功能.完成工作后,我切换到主人将其合并,但我的伙伴推了几个与我发生冲突的文件.合并之后,冲突和推动新的变化,我看到我也承诺了我的伙伴的旧变化.

现在我想重做这个提交/合并.我试过 git reset --soft HEAD^但是当我想要推送时,我收到了此错误消息Merge the remote changes before pushing again.

谁能帮我?

git version-control commit revert

26
推荐指数
3
解决办法
4万
查看次数

重写GIT历史的实际后果是什么?

我们的项目已经使用git一个星期左右了,而且我们都非常享受它(在紧密的协作组中,它变成了一个完全不同的git体验).为了使事情尽可能简单,我们不会进行任何变基或历史修改.但我们确实在第一周犯了一些错误.做了一些不应该做的提交,我们设法将一个功能分支合并到错误的集成分支(1.1而不是1.0).在他们长期进入我们的历史之前,我们没有发现这些事情.

现在我看到很多关于重写历史的警告,但我不确定我是否理解所涉及的危险.我们使用共享的裸存储库,并将所有分支推送到那里进行备份.

我希望如果你重写历史记录(比如删除一个提交),后续提交的完整列表将"丢失"该提交(并且可能不会编译/工作).我也希望如果发生这种情况,我实际上可以选择在历史的顶部解决这个问题(并将这部分历史留作非编译).

  • 如果我重写历史(并且所有编译/工作在所有受影响的分支中),我的同事是否需要执行任何特殊命令)?(换句话说,如果我做得好,他们会"知道我已经做过了吗?"
  • 任何具有我不知道的本地更改的用户是否有资格在git pull上合并失败?
  • 我错过了这里必不可少的东西吗

任何关于这个主题的文章/教程的参考也会非常好.

git git-rebase

24
推荐指数
2
解决办法
6006
查看次数

在Git中恢复一系列推送的合并和提交(无需重写历史记录)

上下文

我的一个队友错误地将一些提交推到了我们的主要开发部门.我们是一个小型的,并置的团队.我们的远程存储库托管在内部服务器上.

这是我们提交日志的顶部(所有这些提交都已被推送):

$ git log develop -6 --pretty=oneline --abbrev-commit
faada93 Merge branch 'develop' of <our_repo_path>.git
244d174 Support classes again
a97a877 Pruned all unused references (again).
8c29252 Merge branch 'develop' of <our_repo_path>.git
a78b993 Support models & methods - product types & categories
da8b496 Resolved JIRA issue PPF-182
Run Code Online (Sandbox Code Playgroud)

da8b496是我们想要保留在develop分支中的最后一个提交,所以我们需要还原最后的5个提交.我们创建了一个新分支,8c29252以继续在"功能分支"中工作.

我尝试了许多事情,在这个答案Linus的这篇文章的指导下,最终做了你在下面的终端历史中看到的内容.但我不确定我最终做的是"正确的方式".我发现的信息很复杂; 我无法辨别这个特定问题的"最佳解决方案".

我选择的方法(见下面的详细信息)是否能够在不损害我们历史的情况下还原这5个提交?有没有更简单或"更正确"的方法来完成同样的事情?

除此之外,我考虑从da8b496(git checkout -b new-develop da8b496)创建一个新的分支并放弃我们当前的develop分支,但这感觉不对.


我最终做了什么(细节)

首先,我创建了提交一个新的分支a78b9938c29252,因为这些提交包含我们要保持并最终合并回到我们的主要开发分支的工作.

$ git …
Run Code Online (Sandbox Code Playgroud)

git git-revert

23
推荐指数
3
解决办法
2万
查看次数

由于合并但不允许使用git revert <hash>但没有给出-m选项

我试图通过使用'revert'命令恢复到git中的某个'hash'数字.

我使用以下命令:

git revert c14609d74eec3ccebafc73fa875ec58445471765
Run Code Online (Sandbox Code Playgroud)

但是,我得到以下返回:

错误:提交c14609d74eec3ccebafc73fa875ec58445471765是一个合并但没有给出-m选项.
致命:恢复失败

作为一个新的git用户,请你解释一下发生了什么以及我要做些什么来解决这个问题.

我想恢复到c14609d74eec3ccebafc73fa875ec58445471765运行时看到的某个commit()git log.

git github revert git-revert

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

git status(没有提交,工作目录清理),但是提交的更改

我发现了许多类似主题的问题,但我没有找到关于这个问题的任何实际指导:为什么git status通知我nothing to commit, working directory clean,甚至很难我在当地分公司做了修改?

以下是我遵循的步骤:

  • git init [在分支主机上 - 初始提交,无需提交(创建/复制文件并使用"git add"进行跟踪)]
  • git remote add https://github.com/username/project.git
  • git pull origin master
  • touch test
  • git add test
  • git commit -m "Adding file for test purposes only."
  • git status [在分支主机上 - 没有提交,工作目录清理]

如果我这样做git push,修改将提交给远程分支.我只想在修改后执行"git status",并接收我在本地分支上更改的信息,必须将其推送到项目的远程分支.

有人能告诉我发生了什么事吗?直截了当,请:(.

在此先感谢SO社区!

git github git-commit

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