问题标签 [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 投票
1 回答
64 浏览

git - 我可以缩短 git 存储库的历史吗

起初,我做了一个浅克隆。在此之后,我发现一些旧的提交引入了一些大文件。例如,这些旧的提交一次又一次地替换了一个二进制文件。

现在,我不希望我的本地存储库包含这些重大更改。如何在不重新创建新存储库的情况下缩短历史记录git clone --depth=10

0 投票
2 回答
83 浏览

git - 删除旧提交中提交的文件

我有 6 个提交,每个提交都有多个文件。我的“问题”是,我提交了一个我不应该提交的文件,我希望它从那个旧提交中消失,所以我看不到它:

如何从提交 2 中删除 file4 以使其消失?

0 投票
1 回答
63 浏览

git - 如何将分支的起点移动到较旧的提交

我想将我的分支重新定位到较旧的提交上,以排除较新提交添加的代码。

我有的:

我想要的是:

假设我想experiment在提交时创建我的分支B,但没有意识到我在提交时成功了E。当我意识到时,我已经做了很多提交,其中包括我不想要的代码更改(C, D, E)。

如何将起点移动experiment到较旧的提交B

我已经阅读了这篇文章,但没有看到任何关于将分支移动到旧提交的有用信息。

0 投票
1 回答
24 浏览

git - 如何从 git 历史记录中删除许多相同格式的文件

我有需要从 git 历史记录中删除许多文档文件的情况,例如 *.html 文件

这些 HTML 文件经过多年的开发,导致 git repo 变得臃肿。现在每次都很难检查 10 多个 GB。

我能够使用在互联网上找到的脚本找出哪些文件格式是导致这种膨胀的原因,例如

使用 grep 分离文档文件格式。我走到了死胡同。

0 投票
4 回答
222 浏览

git - 强制推送基础分支后如何更新我的功能分支。我们只使用变基,禁止合并

我们在 git 中使用了一个非常简单的结构。

首先我们有我们的master分支。

下面我们有develop

最后我们可以有任何feature分支

我们只使用 rebase 来更新我们分支的历史记录,然后 f-forwarding 到上面的分支。

每周,我们的develop分支都更新了一些features. 并且这个分支被重新定位并合并到 master (从developto master)。

问题

当我们变基并合并develop到 时,有时会出现冲突,我必须通过在我的分支中master执行master变基来修复它们。develop修复冲突后,我执行git push --force-with-lease将更改上传到远程。

在这个过程之后,发展的历史因为力推而改变。

当另一个开发人员正在feature基于强制推送之前的分支develop(强制推送develop之前)处理一个分支时,问题就存在了。

我们如何feature用新的分支历史更新这个开发者的develop分支。因为,git rebase develop 在我们的feature分支里面做的时候。我们最终会发生很多冲突。

0 投票
1 回答
85 浏览

git - git mv 文件夹并随后将新文件从功能分支合并到修改后的路径,是否会删除其历史记录?

我有以下情况:

合并前的主要分支:

合并后的主分支:

合并前的功能分支(test4.py历史记录中有 10 次提交):

从功能分支合并后的主分支(使用git merge -s ort和解决不存在的冲突test4.py):

问题是所有的历史都test4.py被删除了......知道它为什么会发生以及它是否可以避免?

0 投票
0 回答
21 浏览

javascript - Git历史扩展无限加载屏幕

我刚刚将 git history 安装到我的 react expo 项目中,问题是历史已经加载了大约 10 分钟,只是空白,这里是错误代码

有任何想法吗?

0 投票
2 回答
37 浏览

git - 如何将 git repo 合并到维护提交历史的父 repo 中?

我一直跟踪childrepo 中的文件。但现在我还需要跟踪另一个child,所以我将它们重命名为child1and child2。我只想维护一个parent包含两个文件夹的目录,但我不想丢失来自childrepo 的提交。

前:

后:

如何才能实现这种简单的设置?

0 投票
1 回答
58 浏览

git - 可以使 gitversion 将唯一标记应用于现有的标记提交吗?

按照项目上的 gitflow 分支模型,我的“开发分支”命名为dev,我的发布分支以 为前缀release/,我的“生产分支”为master.

我们的 CI/CD 流程使用gitversion将 alpha-tag(例如0.2.0-alpha.12)应用于dev分支的每个提交。

当我准备好发布时,我从分支上的所需提交创建发布dev分支,将其推送到远程,我们的 CI/CD 进程使用gitversion将 beta-tag(例如0.2.0-beta.1)应用于提交。

我们目前没有任何GitVersion.yml问题——下面的问题描述来自gitversion的默认行为。

问题:
gitversion应用于具有现有标签的提交时,它返回现有提交,而不是新提交。
例如,创建分支的dev提交被标记为. 当gitversion在新创建的分支上运行时,它返回的标签是,而不是新的 beta-tag。release/0.2.00.2.0-alpha.12release/0.2.00.2.0-alpha.12

期望的结果:可以使
gitversion为具有现有标签的现有提交生成唯一标签。例如,当gitversion在新创建的release/0.2.0分支上运行时,它返回的0.2.0-beta.1标记与提交是否已标记为0.2.0-alpha.12.

问题:
gitversion是否可以配置为实现所需的结果,即如果在指向现有 alpha 标记提交的发布分支上运行,则生成一个新的 beta 标记?(我对 git 分支和标记有一个不错的 - 可能不是专家 - 理解:我知道在所描述的场景中,两个分支指向同一个提交)。

作为这个问题的上下文:我们的 CI/CD 过程依赖于gitversion"SemVer"的输出元素来决定应用什么标签。当新推送的 release-branch 指向现有的 dev-branch 提交(将具有现有的 alpha-tags)时,它会跳闸(或未实现所需的行为),因为 release-branch 的gitversion生成的标签是现有的 alpha-标记,而不是所需的新 beta 标记。

如图:

我尝试过的:
通常,我在新创建的发布分支上进行更改并提交更改,以便生成发布分支独有的新提交,然后在此提交上运行gitversion 。这会生成所需的 beta 标签。例如:

然而,这通常是不可取的,因为 dev-branch 提交是完美的,我需要做一些人为的工作。