git - 如何在 git 中获取工作副本的树形哈希?
问题描述
使用 git,如何获取 git 目录当前状态的树形哈希?也就是说,如果我要运行,提交的树哈希(不是提交哈希)将是git add -A
什么git commit
?
解决方案
比Greg Bacon 的方法简单一些:
- 通过复制当前索引创建临时索引
- 用于
git add -A
更新临时索引中的所有内容 - 用于
git commit-tree
将临时索引变成实际的树
一个小的 shell 脚本(未经测试)就足够了:
#! /bin/sh -e
export GIT_INDEX_FILE=$(mktemp)
trap "rm -f $GIT_INDEX_FILE" 0 1 2 3 15
cp $(git rev-parse --git-dir)/index $GIT_INDEX_FILE
git add -A && git write-tree
复制当前索引的原因是.gitignore
,如果我们没有从真实指数。
另请参阅您自己的问题如何在 git 中获取索引的树哈希?
推荐阅读
- unit-testing - 如何使用新的 csproj 格式在 NUnit 测试中创建 HttpConfiguration 的实例?
- c++ - Pointers in cpp
- php - calculating sla based on minutes on working hours and business days
- python - 如何使用 Beautiful Soup 在“p”标签中获取文本?
- aws-lambda - Boto3 库与 REST 从 python 服务调用 AWS lambda
- arrays - Kotlin 数组最初没有值
- swift - 为 SwiftUI 应用程序设计类的正确架构是什么
- c# - Unity:RigidBody2D,如何以直线移动游戏对象(无曲线)
- node.js - 带有参考数组的猫鼬模型架构:CastError: Cast to ObjectId failed for value "["5f09b....,5f0d...."]"
- c - 一问 基础 TCP/IP 编程使用 bind() 函数