问题标签 [git-history]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
340 浏览

git - 将丢失的文件推送到 git lfs

不幸的是,我在.gitattributes几周前(以及提交和推送)引入了一个错误。因此.gitignore,我的项目的子文件夹被假定在 git lfs 上。但由于某种原因,它从未被推到那里。.gitattributes我通过新的提交纠正了错误。现在,一切都很好,除了我无法签出旧提交,它假定文件存在于 git lfs 中。我收到以下错误:

我该如何解决?有没有办法手动推送文件并给它正确的ID?或者我可以回顾性地修复错误的提交吗?

0 投票
1 回答
66 浏览

git - 代码已经移动后,是否可以将历史记录从 TFVC 存储库迁移到 Git 存储库?

去年,来自 TFS TFVC 存储库的代码被复制到没有历史记录的 TFS Git 存储库。它只是将文件复制/粘贴到新的 git 存储库中。现在是否可以从旧的 TFVC 存储库迁移历史记录?

0 投票
3 回答
1011 浏览

git - 无论git历史记录中的分支如何,如何检查最新提交?

在我的项目中有多个分支。我想检查哪个是历史记录中的最新提交,而与任何分支无关。

我已经尝试过 git log -n 1 --date-order,但它在签出的分支中给出了提交

请帮我一个命令,我可以用它来查看不依赖于分支的 git 历史记录中的最新提交。结果应该给我提交和提交它的分支名称。

0 投票
0 回答
178 浏览

linux - 如何从 Git 存储库的历史记录中完全擦除二进制文件及其痕迹

语境

所以,我的存储库被一些讨厌的二进制文件污染了。有人推送*.zip, *.tar.gz, 和*.prm文件——这是团队的决定。几周后,团队意识到移动 2Gb 数据并不方便。因此,我尝试按照git 文档永久删除大型二进制文件,但收效甚微。

我做了什么

1. 垃圾先收集并检查 repo 大小

2.查找Git历史上最大的文件

3.尝试从每次提交中永久删除文件(此步骤针对每个大文件执行)

...其次是...

4. 再次收集垃圾并重新检查 repo 大小

如您所见,size-pack值从2690503Kb 变为2690500Kb,这并不是令人印象深刻的清理。但更重要的是,运行$ git rev-list --objects --all | grep 5d77503744dd5b13d49942557b867ab065f45ce1 5d77503744dd5b13d49942557b867ab065f45ce1 distribution/cylinders-server/cylinders-server-distribution-0.1.0-SNAPSHOT-distribution.tar.gz仍然显示文件在那里......

0 投票
1 回答
40 浏览

git - 在 Git repro 的历史记录中搜索特定文件

如何在我的 git 存储库的历史记录中搜索特定文件类型?(例如 *.log)

我知道我可以在当前状态或特定提交中搜索 ls-files,但我想搜索所有提交。这确实包括在早期提交中已从分支中删除的文件。

最终结果应该列出所有文件名和文件生效的提交。使用该列表,我可以返回文件的早期版本并查看它。

0 投票
2 回答
9084 浏览

.net - Azure Devops:在所有分支上搜索作者的提交历史

如何在 Azure Devops 的所有分支中找到 Author 的提交历史记录?此选项仅允许我按功能分支上的作者进行过滤。想要搜索所有分支。

在此处输入图像描述

0 投票
2 回答
898 浏览

git - 如何从 BitBucket git 存储库历史记录中删除带有密码的提交?

前段时间我不小心向 BitBucket git 存储库提交了密码,在当前 master 后面有几个提交。虽然我后来通过不使用它提交来删除密码,但它仍然存在于过去的几次提交中。

我不介意在这些提交期间丢失更改的历史记录。我也不担心有人在提交密码时看到了密码,但我想删除此历史记录以避免将来出现问题。

采取什么步骤来确保在这些步骤之后,以后访问此 BitBucket 存储库的任何人都无法找到此密码?

假设我的提交(从最旧到最新)带有(假)SHA1:c001 c002 c003 c004

c002 和 c003 是我想完全删除的“坏”提交的哈希值。我希望 master 留在 c004 上,但是如果我让他们访问这个 repo,任何人都无法再访问 c002 和 c003。我尝试按照关于提供重置或变基的类似问题的说明进行操作,但无法使它们正常工作;我要么设法删除我机器上的提交,但无法推回 BitBucket,或者在搞砸后无法完全删除我的机器。

有人可以解释一下所需的步骤: 1. 从存储库的历史记录中删除 c002 和 c003 2. 确保它保存在 BitBucket 上,并且人们既不能在 BitBucket 的 GUI 中查看这些提交,也不能通过将存储库克隆到他们的机器来查看这些提交

我会很感激能解释命令的作用的答案,而不仅仅是编写一些对我有用或对我不起作用的神奇 git 命令。此外,这个问题是专门针对 BitBucket 的,以防某些事情可能是特定的......我在尝试将更改推送回 BitBucket 后,在进行本地回购后遇到了“更新被拒绝,因为您当前分支的尖端落后”的问题用 reset --hard 改变。在几次失败的尝试和对 git 文档的挫败之后,我决定问 SO。

.

0 投票
1 回答
38 浏览

git - 如何从 git 历史记录中提取所有更改或添加的文件?

我可以从项目的 git 历史记录中提取修改/添加文件的文件名吗?我需要一个修改/添加文件的列表作为文本文件。

0 投票
1 回答
136 浏览

git - 为显式合并建立“干净”的 git 历史记录

我有一个使用GitFlow的 git 存储库(即,它有masterdeveloprelease-*feature-*分支)。然而,合作者并没有使用显式合并(即git merge --no-ff),因此 eggit log --first-parent没有提供迄今为止的合并历史的简单汇总。

展望未来,合作者将使用显式合并。但是,在他们这样做之前,我想确保历史记录是“干净的”,以便在调用git log --first-parent. 但是,显然,我想在调用 unfiltered 时保持实际git log的提交历史。

我的倾向是执行以下操作:

基本上,我们的想法是:

  1. 建立一个--orphan没有先前历史的新 ( ) 分支
  2. 可选)从工作树中删除所有文件,这样我们就不会重新提交它们
  3. 建立一个初始提交,以便我们有一些东西可以合并到
  4. 从分支执行显式合并(即, ) ,确认不相关的历史--no-ffdevelop
  5. 快进develop到我们刚刚执行的显式合并,以便表示历史

我的问题:在将其应用于生产环境之前,我应该了解这种方法的后果吗?是否有替代或更简单的方法更适合完成此类场景?

(在测试中,这似乎实现了我的目标,并且对现有分支或工作流程没有不利影响。但是,使用 git,我总是对我不知道我不知道的事情保持警惕。)

0 投票
1 回答
96 浏览

git - Git:将Master的提交历史替换为功能分支的历史

我是 Git 中交互式变基的新手,所以我创建了一个分支,我可以在其中压缩提交 ( squash-branch),以防万一我毁了某些东西。我没有更改分支上的任何文件,只是更改了历史记录。我合并了分支以master期望它将提交新的提交历史squash-branch

如何替换masterwithsquash-branch的历史记录的提交历史记录?换一种心情说,我想master拥有squash-branch的历史。

我已经尝试了两种强制覆盖master的方法squash-history。“我们的战略”和git branch -f master squash-branch

如果您需要更多详细信息,请通知!

谢谢!