相关疑难解决方法(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万
查看次数

github会在历史记录中保留已删除的远程分支吗?如果是这样,那些可以恢复吗?

我想知道是否有办法在github中恢复远程删除的分支.历史记录清楚地记录了分支并与其他分支合并,但我不确定是否可以恢复已删除的分支.

谢谢.

git github git-branch

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

比较强制推拉请求的新旧版本

通常,我的同事会对一个公开拉取请求进行一些更改,将他们的本地分支重新绑定到基本分支 - 通常也将他们的更改压缩到以前的提交中 - 并强制推送.

如何看待旧版PR与新版PR之间的变化?

我想我可以做一个git pullgit checkout $BRANCH_NAME当PR首次提出,然后git fetchgit diff $BRANCH_NAME..origin/$BRANCH_NAME对PR进行了更新后-但也将显示已通过重订引入基地分支(通常硕士),并带入PR的变化.是否有可能消除噪音并只显示PR本身的变化?

git github git-diff pull-request

21
推荐指数
2
解决办法
1029
查看次数

在github上查找强制推送的提交者

在我们的项目(在GitHub上托管)中,有人不小心每次都强行推动主人.没有人知道是否这样做,我想知道是谁做的,以及它背后有什么样的错误配置工具或坏习惯.

所以问题是,如何识别推动力量的用户?我拉的时候看到这样的东西:

# git pull --prune
(.....)
 + 4c0d44c...138b9ed master     -> origin/master  (forced update)
Run Code Online (Sandbox Code Playgroud)

138b9ed它只是源头/主人的最新提交,并且任何人都可能在强制推动后做出承诺; 甚至可能是推力器本人没有做出任何改变,只是重新定位,所以他的名字甚至不存在于作为作者的原始/主人历史的重写部分.

我也尝试了git reflog origin/master,但它只是提供了相同的信息:有一条记录说明git pull --prune (forced update)了提交ID 138b9ed,但是这将再次将最后一个提交者提供给master,而不是那个强制推送的提交者.git reflog master在原始服务器上运行可能会有所帮助,但GitHub并没有为您提供那种访问AFAIK.

有没有可靠的方法来找出推动起源的人(何时)?

git github git-push

13
推荐指数
2
解决办法
8641
查看次数

获取强制推送的提交的历史记录

昨天,我们团队的一名成员对git push --forceBitbucket 存储库进行了内部检查。我知道是谁,但我想知道是否可以收集哪些提交被强制推送到存储库中。

我从 git log/history 中寻找的信息是这样的 -

+ 1951097...9b070f0 tower -> origin/tower (forced update)

当我尝试拉入本地分支并在强制推送后遇到合并冲突时,我看到了此消息,但除了那一次之外,我在其他任何地方都无法看到它。是否有一个地方可以看到所有提交(特别是(forced update)旁边带有该标签的提交?)正在运行Git reflog并且git log似乎没有返回此信息。

我看到这篇文章(很搞笑)类似 - How can I find out who force Push in git?

我不是寻找特定的人(就像上一个问题中的提问者),而是寻找在本地克隆后使用 --force 推送到存储库中的提交。这些信息是否可以收集,或者我运气不好?

谢谢。

git github

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

Github API创建问题返回404未找到

我正在向以下URL发出请求 - 帖子https://api.github.com/repos/kvimal/2048/issues 我的令牌作为授权标题.

卷曲请求

curl -i -X POST https://api.github.com/repos/kvimal/2048/issues  -d "{title:'hey'}" -H "Authorization: Bearer xxxxxxxxxxxxxxxxxx" -H "Content-Type: application/json"
Run Code Online (Sandbox Code Playgroud)

并且GitHub发送回复404 Not found.我已经重新阅读了文档,据我所知,我正在按照github标准进行操作.有人可以帮忙解决这个问题吗?

github-api

6
推荐指数
2
解决办法
3672
查看次数

GitHub / Sourcetree 删除的标签又重新出现

在工作中,我们将 Sourcetree 与 GitHub 结合使用作为我们代码的源代码控制解决方案。在我们的存储库中,我们还创建了几个标签并将它们推送到远程存储库。然而,一些曾经创建并随后删除的标签通常会再次出现在每个开发人员的本地存储库(以及远程存储库)中。

我们已经删除了每个开发人员本地存储库中的不正确标签,并确保禁用了“推送所有标签”复选框:

在此输入图像描述

然而,这些标签不断重新出现,我们无法看出是哪个开发人员对此负责。

我的问题是,是否有一个 git 命令可以查看谁将标签从本地存储库推送到远程?或者是否有另一种永久的方法来防止已删除的标签再次出现?

git github atlassian-sourcetree

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

为什么/何时应该强制推动?

我经常读到有关如何强制推送的信息,并且远程存储库中所有未拉出的提交都丢失了。如果不需要特定的提交,他还可以创建一个新分支,在我看来,这是很常见的分支,因为即使您不需要特定的代码,也不会丢失数据,也许您现在以后会需要它,我看不出有什么理由要破坏它。

所以我的问题是我为什么必须进行推力?

git

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

Git 会克隆、获取或推送孤立提交吗?

当父提交图中没有包含它们的标签或分支时,就会创建孤立提交。例如,如果你犯了一个分支foo,添加提交ab,然后删除分支(即删除引用foo从提交b),那么这两个ab,除非你救了他们的哈希值将是不可到达的。

x-x-x-x   <- master
     \
      a-b  <- foo (reference then deleted or reset to somewhere on master)
Run Code Online (Sandbox Code Playgroud)

孤立提交的基本 Git 行为是最终垃圾收集并删除它们(我听说默认至少是 30 天)。

我的问题是这样的:

将以往的Git从一个回购移动孤儿提交到另一个使用git clonegit fetchgit push命令?

或者 Git 是否有效地忽略了任何不直接调用孤儿哈希(例如checkoutcherry-pick)的操作的这些提交?

git git-push git-fetch git-clone orphan

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

是否可以在不留下痕迹的情况下重写历史记录?

我已经阅读了有关更改旧提交的时间戳的问题.

我想知道的是:这种操作是破坏性的(即不留下任何痕迹),或者是否有可能发现某个操作是在存储库中完成的?如果是这样,我怎么能这样做?

谢谢

git git-rewrite-history

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

Git远程分支被删除,如何将本地更改与新分支重新同步

我有一个远程分支作为我正在使用的develop_1 。我所有的本地代码更改都已提交给它,但我的领导意外删除了该远程分支。

我在本地系统中进行了所有这些代码更改。现在,我想将所有这些更改推送回新远程分支中的同一个 Git 存储库,例如develop_2

如何创建新分支、同步本地更改并将其推送到远程?

git github git-branch

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