相关疑难解决方法(0)

如何更改一个特定提交的提交作者?

我想更改历史记录中某个特定提交的作者.这不是最后一次提交.

我知道这个问题 - 如何在git中更改提交的作者?

但我正在考虑一些事情,我通过哈希或短哈希来识别提交.

git git-commit

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

如何从git存储库中删除旧历史记录?

我恐怕找不到任何类似这种特殊场景的东西.

我有一个有很多历史的git存储库:500多个分支,500多个标签,可以追溯到2007年中期.它包含~19,500次提交.我们想在2010年1月1日之前删除所有历史记录,以使其更小更容易处理(我们将在存档库中保留历史记录的完整副本).

我知道我想要成为新存储库的根目录的提交.但是,我不能找出正确的git mojo来截断repo以从那个提交开始.我猜的是一些变种

git filter-branch
Run Code Online (Sandbox Code Playgroud)

涉及移植是必要的; 它也可能是必要的对待每一个我们要分别保持在200多个分支机构,然后修补回购重新走到一起(这是我知道该怎么做).

有没有人做过这样的事情?如果重要的话,我有git 1.7.2.3.

git git-filter-branch

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

Git,重写以前的提交用户名和电子邮件

我已经为Github上的一个项目提交了一堆提交,但是我意识到我没有在我正在使用的计算机上设置正确的电子邮件和提交者全名,因此用户的头像和电子邮件地址不在那里.

如何重写所有过去的提交电子邮件和用户名?

git

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

Git:如何从历史提交中删除文件?

我提交了id 56f06019(例如).在那个提交中,我不小心提交了大文件(50Mb).在另一个提交中,我添加相同的文件,但大小合适(小).现在我克隆的回购太重了:(如何从回购历史中删除那个大文件以减少我的回购的大小?

git

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

从文件夹创建子模块存储库并保留其git提交历史记录

我有一个Web应用程序,以特定的方式探索其他Web应用程序.它包含一个demos文件夹中的一些Web演示,其中一个演示应该拥有它自己的存储库.我想为这个演示应用程序创建一个单独的存储库,并使其成为一个分装 来自主存储库的子模块,而不会丢失其提交历史记录.

是否可以将提交历史记录保存在存储库文件夹中的文件中并从中创建存储库并将其用作子模块

git git-submodules revision-history

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

如何在运行git filter-branch后删除旧的历史记录?

假设我有这样的树:

... -- a -- b -- c -- d -- ...
             \
              e -- a -- k
Run Code Online (Sandbox Code Playgroud)

我希望它变得公正

... -- a -- b -- c -- d -- ...
Run Code Online (Sandbox Code Playgroud)

我知道如何将分支名称附加到"e".我知道我要做的事情会改变历史,这很糟糕.另外我想我需要使用像rebase或filter-branch这样的东西.但究竟是什么 - 我迷路了.

好.情况如下:我现在有一棵相当大的树(像这样)

                 s -- p -- r   
                /
a -- b -- c -- d -- e --- g -- w
           \               \
            t -- p -- l     y -- k
Run Code Online (Sandbox Code Playgroud)

但是在我的第一次提交中(比如前面的"b"),我添加了二进制文件,这使整个回购非常繁重.所以我决定把它们带走.我用filter-branch做了.现在,从第二次提交开始,我有两个长的提交分支.

                 s -- p -- r   
                /
a -- b -- c -- d -- e --- …
Run Code Online (Sandbox Code Playgroud)

git git-filter-branch git-branch

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

导致此提交仍然被引用的原因是什么?

我想从我的回购中删除一个巨大的二进制提交.

> git log --all -- '*.tiff'
commit 05f03aba18164c736182e612181f99ce04e38845
...
Run Code Online (Sandbox Code Playgroud)

它不是分支机构的一部分......

> git branch --all --contains 05f03aba
> (nothing)
Run Code Online (Sandbox Code Playgroud)

...,它没有被标记指向,并且它不能被reflog引用.(我已经清除了git reflog expire --expire=now --all)

然而,提交以某种方式被引用,因此没有被修剪:

> git fsck --unreachable
> (nothing)
Run Code Online (Sandbox Code Playgroud)

如何找出导致提交的原因?

git

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