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

git - 显示文件的历史记录?

可能重复:
使用 Git 版本控制查看文件的更改历史记录

有时我想逐步浏览特定文件的历史记录。过去我使用 P4V,这非常快速和直观。

  1. 右键单击文件并选择历史记录。
  2. 滚动查看日期,并查看该日期在该文件中的确切更改内容的一个很好差异。简单的。

切换到 git 现在是一项艰巨的任务。

  1. “git 日志文件名”
  2. 查看历史并选择一个日期,复制哈希
  3. “git diff 哈希”
  4. 滚动 diff 以查看我感兴趣的文件中更改的内容。
  5. 不,不是这样,让我们​​尝试不同的日期 - 回到第 2 步,冲洗并重复。

我搜索了 SO,并尝试了一些常用的 gui:github、gitk、gitg、git-gui。

这些都消除了手动运行命令的需要,但工作流程是相同的。查看文件的历史记录;查看提交;搜索大量不相关文件的差异。这是缓慢和重复的。

所有数据都在 repo 中,所以我认为这个简单的常见用例没有理由不能更精简。

任何人都可以推荐一个可以做到这一点的工具 - 或者一种更有效的方式来利用命令行来做我想做的事吗?

感谢您的任何建议。

0 投票
0 回答
50 浏览

git - 如何恢复由于行尾而产生的带有大量不需要的更改的 git pull 请求

有一些方法可以防止由于行尾不同而对文件进行不必要的更改。但是如何修复已经包含许多不需要的更改以及一些有用和需要的更改的拉取请求?

我一个接一个地检查文件并为它们检查当前的 /develop 分支状态。但这假设工作量太大。

我可以在分支之前再次分支状态并将只需要的文件提交到该分支。同样,应该检查所有文件。

我不能通过变基(删除错误的提交)来分开,因为提交既包括有用的更改,也包括过多的更改。行尾没有单独的提交。

只能向我展示显着差异。但是我可以对 git 说只合并这个差异中的行吗?

0 投票
2 回答
2020 浏览

git - 在 TFS 上编辑另一个开发人员 GIT 提交消息

有人问我是否可以修改 git 历史记录中包含其他开发人员不适当措辞的项目的一组签入注释。

有人可以告诉我如何实现这一点(或确认这是否不可能)?我是 TFS 的管理员,所以访问权限不是问题。我们的 TFS 使用 SQL Express 和 GIT 作为源代码控制。TFS 版本为 15.117.26714.0

我们在本地机器上使用 Visual Studio 2017 和 Team Explorer 插件。

0 投票
1 回答
680 浏览

git - 为什么在将多个存储库合并到一个单一存储库后对文件运行“git log -m --follow”时会出现不相关的历史记录?

我有几个不同的 git 存储库,我想将它们合并到一个整体存储库中,同时保留它们的历史记录。我找到了一种方法来做到这一点,但我对 git log 向我显示的单个文件历史记录有点困惑。

这是我的输出:

git log --oneline

组合回购的输出

git log --oneline repoA/README.md

组合回购的输出

git log --oneline -m --follow repoA/README.md

组合回购的输出

从所有单独的存储库作为捆绑包开始,我执行以下操作来创建我的整体存储库:

对于回购 A/B/C

创建组合仓库 git init echo "initial" > README.md git add 。git commit -m '初始提交'

对于每个回购

为什么我在使用“-m --follow”运行时会得到与特定文件无关的 git 提交历史记录?我希望只看到与文件有关的提交。

更新(尝试使用不同名称和内容的文件的日志):

0 投票
0 回答
22 浏览

git - 使用 Git 将目录从 repo1 复制到 rep2 时丢失历史记录

我必须使用带有所有历史记录的 Git 将目录从 repo1 复制到 repo2。步骤是:

--allow-unrelated-histories仅保存最后一次提交的问题。

我想拯救所有的宿主。

有任何想法吗 ?

0 投票
1 回答
82 浏览

git - 剪切后连接 git 历史记录

我的两个回购来自同一个项目。我在提交后做了一个历史记录3,现在只使用 Repo ProjectnameWorking

git log回购“项目名称存档”:

git log回购“项目名称工作”:


有没有办法稍后将历史记录和项目文件连接到一个?

git log回购“项目名称”


编辑:

  • 在 Repo“ProjectnameArchiv”提交 4 - 从 cut 获取新哈希
0 投票
2 回答
110 浏览

ruby-on-rails - 合并 2 个 Rails App 子目录,保留 git 历史记录

我想将 2 Rails 应用程序“我们可以调用”合并到另一个 Rails 应用程序“我们可以调用目标”分布到子文件夹中而不会丢失 git 历史记录。

我只想合并 Rails 的主文件夹。

例如

合并源/子文件夹 >> 目标/子文件夹/源

合并源/子文件夹/file.rb >> 目标/子文件夹/源/file.rb

目标应用程序应如下所示:

我只想保留主子文件夹的 git 历史记录,我将手动合并其余文件。

在这篇文章之后我尝试了 git 工具git subtree,它只能将应用程序“源”合并到目标文件夹中,如库或插件,但我想分发应用程序的子目录(控制器、模型、助手、视图,规格,...)到目标应用程序子目录。

这样做的主要目的是可以在Github中查看从应用程序导入到目标应用程序的文件的所有历史记录。

0 投票
0 回答
47 浏览

git - 如何使文件看起来好像在 git 中一直被命名为其他名称?

我有一个control.lua在 git 存储库中命名的文件,但我想让它看起来好像一直被调用init.lua。我应该如何处理这个?

0 投票
1 回答
33 浏览

git - 为什么分支 B 在第一次合并提交后从 A 到 B 的所有合并提交中都有冲突?

我有一个历史悠久的初级开发分支(A)。A 中的所有发布提交都被标记为这样。我检查了 A 的根提交,并分支到测试 (B)。

所以我有一个主分支 A,分支 B 的负责人指向 A 的根提交。我的目标是通过将每个标记的提交从 A 合并到 B 来创建所有版本的历史记录。

从 A 到 B 的第一次合并按预期工作,没有冲突。

第一次提交效果很好,但所有其他提交都将所有合并提交视为完全冲突。我看到 B 的根与 A 的根相同,但是在从 A 中的第一个发布提交到 B 的第一次压缩合并提交后,没有识别到​​共享历史。是什么导致了冲突以及如何获取共享历史被认可?

0 投票
0 回答
134 浏览

git - 可以 git rebase 到一个文本文件,编辑它然后从编辑的文件中应用?

我必须修复一个巨大的历史(超过 300 条消息)。显然,我将不得不通过 rebase 到 root git rebase -i --root,然后重新编写所有需要重新编写的提交。因此,您可以掌握这项工作的范围。

有没有办法将 git 历史记录导出到我可以通过 sublime(或其他文本编辑器)打开的文件,然后以更用户友好的方式更改提交消息,并在完成所有更改后将更改从该文件导入回Git 历史?

科幻还是现实?