Linked Questions

2 votes
0 answers
19 views

Unpacking a commit shows commit <number> which cat-file and log doesn't show [duplicate]

So for fun I've been learning a bit more about gits internals. I've noticed when I unpack commit objects they look like this: (With info redacted) $ openssl zlib -d -in C:\Users\<project-folder>\...
Ja Da's user avatar
  • 458
363 votes
4 answers
144k views

Difference between author and committer in Git?

I am trying to make a commit like git commit --author="John Doe <[email protected]>" -m "<the usual commit message>" where John Doe is some user in whose name I want to make the commit. It ...
Anshul Goyal's user avatar
  • 75.6k
92 votes
22 answers
81k views

How to DEFLATE with a command line tool to extract a git object?

I'm looking for a command line wrapper for the DEFLATE algorithm. I have a file (git blob) that is compressed using DEFLATE, and I want to uncompress it. The gzip command does not seem to have an ...
Felix Geisendörfer's user avatar
144 votes
13 answers
25k views

How to assign a Git SHA1's to a file without Git?

As I understand it when Git assigns a SHA1 hash to a file this SHA1 is unique to the file based on its contents. As a result if a file moves from one repository to another the SHA1 for the file ...
git-noob's user avatar
  • 5,877
242 votes
7 answers
104k views

What does the git index contain EXACTLY?

What does the Git index exactly contain, and what command can I use to view the content of the index? Thanks for all your answers. I know that the index acts as a staging area, and what is committed ...
mochidino's user avatar
  • 3,633
144 votes
9 answers
58k views

Does Git publicly expose my e-mail address?

The guides I've read so far on Git say that I should go into the config and specify my name and my e-mail address. They don't elaborate; they just say to do it. Why does Git need my e-mail address? ...
Joe White's user avatar
  • 96.7k
143 votes
7 answers
53k views

How does Git compute file hashes?

The SHA1 hashes stored in the tree objects (as returned by git ls-tree) do not match the SHA1 hashes of the file content (as returned by sha1sum): $ git cat-file blob ...
netvope's user avatar
  • 7,807
46 votes
7 answers
19k views

git commit - setting timestamps into the future

I need to make some commits using Git but I would like the timestamp in git-log to be in the future. How can I do a commit in git that causes a future timestamp to register in the git-log?
user avatar
59 votes
5 answers
24k views

What is the internal format of a Git tree object?

What is the format of a Git tree object's content? The content of a blob object is blob [size of string] NUL [string], but what is it for a tree object?
Bystysz's user avatar
  • 741
25 votes
3 answers
23k views

Who is the user with the longest streak on GitHub? [closed]

Does anybody know how to find a list of the users with longest Github streaks ever?
Alexander Popov's user avatar
6 votes
3 answers
4k views

Where are tree hashes stored in git?

I am following this tutorial (https://jwiegley.github.io/git-from-the-bottom-up/1-Repository/3-blobs-are-stored-in-trees.html) to learn about git architecture. The command $ git cat-file commit HEAD ...
Joshua Meyers's user avatar
4 votes
4 answers
3k views

What is the format of a git tag object and how to calculate its SHA?

I am familiar with how Git creates SHA1 hashes for files (blobs), but not how they are created for tag objects. I assume they are, if I create an annotated tag, but what is the recipe? And how might I ...
theory's user avatar
  • 9,555
7 votes
2 answers
8k views

Can I hide commits' time when I push to GitHub?

As the title says: I'd like all commits I push to GitHub to appear with the timestamp of the push rather than of the commit, in the GitHub's commits tab. I use quite a standard workflow: <do some ...
yo''s user avatar
  • 821
4 votes
3 answers
1k views

What information is stored as each git commit's tree object content

Each Git commit object points to a tree object. Does every commit-tree object store all its entries with it or does it only add new entries and only contain deltas from commit's parent? e.g. Linux ...
user6317694's user avatar
  • 1,002