相关疑难解决方法(0)

删除我们膨胀的git历史的部分

我的问题:

在设置存储库的早期,错误被导致将当时的所有图像写入存储库.这在gitignore文件中很快得到纠正,不再出现问题.

现在问题是我们有一个庞大的存储库,其中包含图像的历史记录.这在本地克隆存储库时会出现问题,因为它比提示中的干净克隆需要更长的时间.

我的问题:

有没有办法删除包含永远不需要的图像的历史部分?

如果我无法删除,我可以以任何方式压缩甚至清理历史记录吗?

git

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

删除 git repo 中所有以前版本的文件

我在 git repo 中有一个文件,它包含敏感信息。我已在最新提交中删除了此信息。现在我想从 git 存储库中删除此文件的所有先前版本。如何才能做到这一点?

我相信它可以用 git-filter-branch 来完成,但我还没有遇到一个可以让我理解的例子。

git git-filter-branch

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

如何从 GitHub 上彻底删除敏感提交?

几天前,我读到了有关 Github 隐私基础知识的文章,其中说提交者的电子邮件可以通过简单的 Github API 请求查看。

我设置了电子邮件别名,但我想更改过去提交的电子邮件。尝试使用站点和 .gitconfig 的别名

change-commits = "!f() { VAR1=$1; VAR='$'$1; OLD=$2; NEW=$3; 
  echo \"Are you sure for replace $VAR $OLD => $NEW ?(Y/N)\";
  read OK;
  if [ \"$OK\" = 'Y' ] ; 
  then shift 3; 
  git filter-branch --env-filter \"if [ \\\"${VAR}\\\" = '$OLD' ]; 
  then export $VAR1='$NEW';echo 'to $NEW'; fi\" $@; fi;};f " 
Run Code Online (Sandbox Code Playgroud)

之后,当我输入时,git log每次提交都有新邮件,但在 API 调用https://api.github.com/users/(usuername)/events/public之后,我会同时看到旧电子邮件和新电子邮件

git security privacy

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

删除提交的 git 交互式变基是否能真正消除 API 密钥/秘密/密码的暴露?

重要的是不要将密码和秘密存储在代码存储库中。

有时,我们在开发应用程序时会硬编码 API 密码。我们通常通过将其转换为我们设置的环境变量export(Unix)来删除它。显然,更好的做法是从一开始就使用环境变量。

但是,如果我们不那么小心并且提交了导致密码暴露的更改,会发生什么情况。
第一步是快速删除它们并提交并推动更改。
好的

但...

密码仍然在 git 历史记录中,因此任何有权访问 git 存储库的人都可以获得密码。不好。

但...

然后,我们执行 git 交互式变基并删除(而不是压缩)有问题的提交 = 在历史记录中添加了密码的提交。

这会解决问题并确保密码在 git 中不再以任何方式可用吗?

当我拉出此提交时,这将如何影响代码。如果除了带有密码的行之外还有其他代码,我可能需要重做那些会丢失的更改。如果提交是很多年前的事情,那么如果此后的任何提交也更改了同一行,我可以想象会出现问题。但愿不会。

git passwords secret-key

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

我的aws密钥对在几个cmmits之后在github上

我可能在多个提交中的多个分支上有敏感的密钥信息.我很蠢.当我第一次学习aws并用雾和载波进行设置时,我甚至没有想到我的秘密密钥每次提交都会发布到github.甚至在我尝试将文件添加到gitignore之后.问题是,如何撤消发布此信息的许多提交并实现像figaro这样的gem来保持github的信息秘密?我几乎要删除我的回购...

ruby-on-rails github amazon-web-services figaro-ruby

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

如何从 Gitlab 中完全删除旧的提交?

我在 Gitlab 上有一个存储库,其中一个分支上有一些提交,如下所示

A - B - C - D - HEAD
Run Code Online (Sandbox Code Playgroud)

我错误地在提交 B 上上传了一些秘密令牌字符串,后来我注意到了,所以我从 A 创建了一个新分支,然后手动复制了提交 D 中的所有文件,所以历史记录现在看起来像这样

 /  - E - HEAD
A  - B  - C - D
Run Code Online (Sandbox Code Playgroud)

现在我所做的是在 Gitlab 上删除分支 BCD,这样那些“令牌提交”就不再可访问,历史记录看起来像

A - E - HEAD
Run Code Online (Sandbox Code Playgroud)

然而,我只是注意到我仍然可以通过项目 - >活动访问麻烦的提交,并看到我的旧推送,其中旧提交仍然可以访问。

怎样才能彻底删除那些呢?

git gitlab

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

是否可以编辑 Github 提交历史记录?

在构建项目时,我使用了私有仓库并为了更快地测试,我使用了数据库和其他凭据作为代码中的变量。

现在项目依赖于 env。变量,所以回购中没有秘密的东西。我想把它公之于众。

我不希望人们看到提交历史记录中包含这些凭据的部分。

是否可以删除这些行或将所有提交历史设为私有?

git github

0
推荐指数
1
解决办法
2925
查看次数

如何从github repo中的提交中删除凭据?

我不小心在我的 GitHub 存储库中提交了我的凭据。

我必须从这里删除此凭据(AWS_ACCESS_KEY_ID,秘密访问),否则我的帐户将被暂停。我现在已经从我的帐户中删除了凭证,但它在之前的提交中公开了。

git github

0
推荐指数
1
解决办法
1253
查看次数

Django 2.3:我将我的密钥提交到私有存储库。我可以自己编辑密钥,然后将 .env 文件添加到 .gitignore 中吗?

因此,作为 Django 的新手,我不小心将我的密钥提交到了我网站的私有存储库中。考虑到我打算将此网站用于商业目的,我想确保它尽可能安全。我需要生成一个全新的 Django Key 吗?或者我可以只编辑密钥的 10 个字符,将编辑后的密钥添加到我的 .env 文件中,将 .env 添加到我的 .gitignore 文件中,然后就到此为止了吗?

我认识到这不是最好的方法。我很可能会完全生成一个新的密钥,但我认为这可能是一个有效的快速解决方案。

我认为通过这种方式,新的密钥仍然是随机生成的,旧的密钥仍然可以在 github 上找到,但对于任何碰巧抓取它的人来说都是无用的。

仅供参考,我正在使用 python-de Couple 和 .env 文件,这是我保存所有秘密变量(aws 信息、秘密密钥、数据库信息等)的地方。我有单独的设置文件(production.py、development.py、common_settings.py),其中 production.py 和development.py 都从 common_settings.py 导入所有数据。我只是碰巧忘记在第一次提交之前删除原始的 settings.py 文件。

git django secret-key python-3.x

0
推荐指数
1
解决办法
4074
查看次数

删除项目的前 10 次提交

我创建了一个软件并将一些信息保存在文件中。我将所有内容推送到 github,在 9 次提交后,我看到该文件也被推送到 github。我更改了 .gitignore,以便不再推送该文件。

现在的问题是,信息可以在前 10 次提交中看到......

我可以以某种方式删除前 10 个提交而不删除其他任何内容吗?(这样我的第 11 次提交将是第一个。我已经有更多提交了)

git

0
推荐指数
1
解决办法
339
查看次数