bash - git clone 后 git 差异无法正常工作
问题描述
我有一个 bash 脚本,我必须在其中克隆并获取一些存储库的差异。我正在尝试获取日期范围之间的差异
git clone $repository
cd $path
git diff master@{2019-10-1}..master@{2019-10-14} -- package.json
但它显示错误: 警告:'master' 的日志仅返回 2019 年 10 月 15 日星期二 09:51:16 +0000。
但是这个存储库很旧并且有很多提交。当我在几周前克隆相同存储库的机器上本地执行此操作时,我得到了适当的区别。
$ git diff master@{2019-10-1}..master@{2019-10-14} -- package.json
diff --git a/package.json b/package.json
index d29ffcb..8766fde 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "accountd",
- "version": "0.0.95",
+ "version": "0.0.102",
"main": "dist/src/index.js",
"private": true,
"scripts": {
@@ -8,7 +8,8 @@
"start-dev": "npm run build && nodemon . port=5000 stage",
"start-sand": "npm run build && nodemon . port=5000 stage",
- "test": "nyc --extension .ts --reporter=html --reporter=cobertura --reporter=text mocha -r ts-node/register src/**/*.spec.ts --exit",
+ "test": "mocha -r ts-node/register test/**/*.spec.ts test/**/**/*.spec.ts --exit",
我希望在一段时间内对此特定文件所做的更改。
解决方案
您使用的符号 ( master@{<date>}
) 表示您要根据本地 reflogs 引用master
on的版本。也就是说,您是说您想知道该特定克隆的ref 在该日期指向的内容 - 而不是在该日期提交的当前提交。<date>
master
master
master
git 告诉你“这个克隆在那个日期没有参考”。
要做到你的意思,你首先必须找到“当时”日期之前的最后一次提交,然后diff
反对。有很多方法,但类似
git diff $(git rev-list -n1 --before="<date>" --first-parent master) master
可能是你想要的更多
推荐阅读
- wordpress - WooCommerce 显示管理员详细信息
- python - tf.ExponentialMovingAverage 的结果与预期不符
- itk - 使用 itk 将 3D 二值图像转换为 3D 网格
- r - 按变量的连续运行对数据进行分组
- cordova - Hammer.js 滑动不适用于 Cordova InAppBrowser
- r - 基于线斜率的线颜色
- azure-cognitive-search - 使用 Lucene 查询语法的 Azure 搜索返回不正确的结果
- vba - 438 对象不支持此属性或方法 vba
- javascript - 如何通过承诺链传递变量
- python - 在 For 循环中从 Windows 批处理文件中的数组访问项目