相关疑难解决方法(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合并

在我的主分支中,我做了一个git merge some-other-branch本地,但从未将更改推送到原始主.我不是故意合并,所以我想撤消它.在git status合并后执行操作时,我收到此消息:

# On branch master
# Your branch is ahead of 'origin/master' by 4 commits.
Run Code Online (Sandbox Code Playgroud)

根据我发现的一些说明,我试着跑步

git revert HEAD -m 1
Run Code Online (Sandbox Code Playgroud)

但现在我收到这条消息git status:

# On branch master
# Your branch is ahead of 'origin/master' by 5 commits.
Run Code Online (Sandbox Code Playgroud)

我不希望我的分支通过任何数量的提交领先.我该如何回到那一点?

git undo git-merge

3695
推荐指数
27
解决办法
200万
查看次数

将本地存储库分支重置为远程存储库HEAD

如何将本地分支重置为远程存储库中的分支?

我做了:

git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)

但当我跑一个git status,

On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
      modified:   java/com/mycompany/TestContacts.java
      modified:   java/com/mycompany/TestParser.java
Run Code Online (Sandbox Code Playgroud)

你能告诉我为什么我有这些'修改'?我没有碰过这些文件?如果我这样做,我想删除它们.

git undo

3488
推荐指数
22
解决办法
283万
查看次数

Git拒绝合并关于rebase的无关历史

git rebase origin/development以下错误消息从git显示:

fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef
Run Code Online (Sandbox Code Playgroud)

我的git版本是2.9.0.用于在以前的版本中正常工作.

如何通过新版本中引入的强制标记继续使用此rebase,从而允许不相关的历史记录?

git rebase

1862
推荐指数
25
解决办法
123万
查看次数

使当前的Git分支成为主分支

我在Git中有一个存储库.我做了一个分支,然后对主人和分支做了一些改变.

然后,几十次提交之后,我意识到分支处于比主设备好得多的状态,所以我希望分支"成为"主设备并忽略主设备上的更改.

我无法合并它,因为我不想在master上保留更改.我该怎么办?

额外:在这种情况下,'old'主服务器已经被push转到另一个存储库,例如GitHub.这怎么改变了?

git

1555
推荐指数
10
解决办法
69万
查看次数

如何解决git说"在合并之前提交更改或存储它们"?

我在我的本地计算机上做了一些更新,将它们推送到远程存储库,现在我正在尝试将更改提取到服务器并获取消息;

错误:合并将覆盖对以下文件的本地更改:

的wp-content/W3TC-配置/ master.php

请在合并之前提交更改或存储更改.

所以我跑了,

git checkout -- wp-content/w3tc-config/master.php
Run Code Online (Sandbox Code Playgroud)

并再次尝试,我收到相同的消息.我假设w3tc在服务器上的配置文件中改变了一些东西.我不关心本地副本或远程副本是否在服务器上(我认为远程副本是最好的),我只是希望能够合并其余的更改(插件更新).

有任何想法吗?

git

678
推荐指数
13
解决办法
88万
查看次数

忽略本地变化时Git拉?

有没有办法做一个git pull忽略任何本地文件更改而不吹掉目录而不得不执行git clone

git git-pull

433
推荐指数
11
解决办法
46万
查看次数

git:切换分支并忽略任何更改而不提交

我正在使用git分支并准备提交我的更改,因此我使用有用的提交消息进行了提交.然后我心不在焉地对不值得保留的代码做了一些小改动.我现在想改变分支,但是git给了我,

错误:您对"X"进行了本地更改; 不能切换分支.

我以为我可以在不提交的情况下改变分支.如果是这样,我该怎么设置呢?如果没有,我该如何摆脱这个问题?我想忽略这些微小的变化而不提交,只是改变分支.

git branch git-checkout

296
推荐指数
11
解决办法
33万
查看次数

强制更新后Git拉

我只是压缩了一些提交git rebase并做了一个git push --force(这是邪恶的,我知道).

现在其他软件工程师有不同的历史,当他们这样做时git pull,Git会合并.有没有办法解决这个问题,除了做一个rm my-repo; git clone git@example.org:my-repo.git

我需要与之相反的东西git push --force,但git pull --force没有给出预期的结果.

git git-pull

290
推荐指数
4
解决办法
9万
查看次数

如何强制git pull覆盖每次拉动的所有内容?

我有一个CENTRAL裸存储库,有三个开发人员存储库正常拉动和推送它.

我还有另外两个来自CENTRAL裸仓库的存储库:一个是实时服务器,另一个是测试/阶段服务器 - 每个都来自它自己的分支.

场景是这样的:我post-update在CENTRAL repo上有一个钩子脚本,它自动访问测试和实时回购并在每个上运行一个pull命令.这会更新测试服务器和实时服务器,具体取决于具有新提交的分支.一切都很好.

问题是:在紧急情况下有时可能会在服务器上直接更新文件(通过ftp或其他),然后CENTRAL更新后脚本将失败,因为会发生合并/覆盖冲突.没有办法避免这种情况,这是不可避免的.

我想要发生的是:我希望实时和测试站点的拉力总是覆盖/合并拉.总是.这些回购将是拉动的,因为它们不适合开发.

在我的所有研究中,我找不到一个好的解决方案,让拉总是强制覆盖本地文件.这是可能吗?如果是这样,那将是一个很好的发展方案.

git git-pull

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

标签 统计

git ×10

git-pull ×3

git-checkout ×2

undo ×2

branch ×1

git-merge ×1

git-reset ×1

git-revert ×1

rebase ×1