SHA-1 is a cryptographic hash function that Git uses to uniquely identify commits, files, and other objects by generating a 40-character hexadecimal string.
Click to reveal answer
beginner
Why does Git use SHA-1 hashes for its objects?
Git uses SHA-1 hashes to ensure data integrity and to quickly check if content has changed by comparing unique hash values instead of the full content.
Click to reveal answer
beginner
How long is a SHA-1 hash string in Git?
A SHA-1 hash string in Git is 40 characters long, consisting of hexadecimal digits (0-9 and a-f).
Click to reveal answer
intermediate
What happens if two different files produce the same SHA-1 hash in Git?
This is called a collision and is extremely rare. Git relies on SHA-1's uniqueness to avoid collisions, ensuring each object is uniquely identified.
Click to reveal answer
beginner
How can you see the SHA-1 hash of the latest commit in a Git repository?
You can run the command git log -1 --format=%H to display the full SHA-1 hash of the latest commit.
Click to reveal answer
What does a SHA-1 hash represent in Git?
AA unique identifier for Git objects
BThe size of a file in bytes
CThe date and time of a commit
DThe username of the committer
✗ Incorrect
SHA-1 hashes uniquely identify Git objects like commits and files.
How many characters long is a SHA-1 hash string in Git?
A64 characters
B20 characters
C40 characters
D128 characters
✗ Incorrect
SHA-1 hashes are 40 hexadecimal characters long.
Which Git command shows the SHA-1 hash of the latest commit?
Agit show HEAD
Bgit log -1 --format=%H
Cgit status
Dgit diff
✗ Incorrect
The command 'git log -1 --format=%H' outputs the full SHA-1 hash of the latest commit.
Why is SHA-1 hashing important in Git?
ATo compress files
BTo speed up network transfers
CTo encrypt commit messages
DTo uniquely identify and verify data integrity
✗ Incorrect
SHA-1 hashes help Git uniquely identify objects and verify their integrity.
What is a collision in SHA-1 hashing?
AWhen two different inputs produce the same hash
BWhen a hash is too long
CWhen a commit is lost
DWhen a file is deleted
✗ Incorrect
A collision happens if two different inputs generate the same SHA-1 hash, which is very rare.
Explain what SHA-1 hashing is and why Git uses it.
Think about how Git tracks changes and verifies data.
You got /4 concepts.
Describe how you can find the SHA-1 hash of a commit in Git and what it represents.
Focus on commands and the purpose of the hash.
You got /3 concepts.
Practice
(1/5)
1. What does the SHA-1 hash in Git uniquely identify?
easy
A. A specific commit or file content
B. The username of the committer
C. The branch name
D. The date and time of the commit
Solution
Step 1: Understand SHA-1 purpose in Git
SHA-1 generates a unique code based on the content of files or commits.
Step 2: Identify what SHA-1 represents
It uniquely identifies the exact content or commit, not metadata like username or branch.
Final Answer:
A specific commit or file content -> Option A
Quick Check:
SHA-1 = unique content ID [OK]
Hint: SHA-1 hashes content, not user or branch info [OK]
Common Mistakes:
Thinking SHA-1 identifies user info
Confusing SHA-1 with branch names
Assuming SHA-1 stores commit date
2. Which command correctly shows the SHA-1 hash of the latest commit in a Git repository?
easy
A. git log -1 --format=%H
B. git sha1sum HEAD
C. git show --hash
D. git commit --hash
Solution
Step 1: Recall Git command to show commit hash
The command 'git log -1 --format=%H' prints the full SHA-1 hash of the latest commit.
Step 2: Check other options for correctness
The other options are invalid or do not exist in Git syntax.
Final Answer:
git log -1 --format=%H -> Option A
Quick Check:
Correct Git syntax for latest commit SHA-1 is git log -1 --format=%H [OK]
Hint: Use git log with format %H for full commit hash [OK]
Common Mistakes:
Using non-existent git commands
Confusing commit message commands with hash commands
Trying to use sha1sum directly on HEAD
3. Given the command git hash-object README.md, what is the expected output?
medium
A. An error because README.md is not a commit
B. The size of README.md in bytes
C. The last commit hash that modified README.md
D. The SHA-1 hash of the README.md file content
Solution
Step 1: Understand git hash-object command
This command computes and outputs the SHA-1 hash of the file content given (README.md here).
Step 2: Verify output meaning
It does not show file size, commit hashes, or errors for valid files.
Final Answer:
The SHA-1 hash of the README.md file content -> Option D
Quick Check:
git hash-object outputs file content SHA-1 [OK]
Hint: git hash-object hashes file content, not commits [OK]
Common Mistakes:
Expecting commit hash instead of file hash
Thinking it outputs file size
Assuming it errors on normal files
4. You run git hash-object -w file.txt but get an error. What is the most likely cause?
medium
A. The -w option is not valid for git hash-object
B. The file.txt does not exist in the current directory
C. You need to commit before hashing
D. The file.txt is already tracked by Git
Solution
Step 1: Understand git hash-object -w usage
The -w option writes the object to Git's object database; it requires the file to exist.
Step 2: Identify cause of error
If file.txt does not exist, the command errors. Other options are incorrect because -w is valid, committing is not required, and tracking status doesn't cause this error.
Final Answer:
The file.txt does not exist in the current directory -> Option B
Quick Check:
Missing file causes git hash-object -w error [OK]
Hint: Check file existence before git hash-object -w [OK]
Common Mistakes:
Thinking -w is invalid option
Assuming commit is required before hashing
Believing tracked files cause this error
5. You want to verify if a file's content matches a specific Git object SHA-1 hash. Which sequence of commands correctly helps you do this?
hard
A. Run git show SHA1_HASH and compare with file.txt content manually
B. Run git diff SHA1_HASH file.txt to see differences
C. Run git hash-object file.txt and compare output with the SHA-1 hash
D. Run git cat-file -p file.txt to get the hash
Solution
Step 1: Understand how to get file's SHA-1 hash
Use 'git hash-object file.txt' to compute the SHA-1 hash of the file content.
Step 2: Compare computed hash with given SHA-1
If the hashes match, the file content matches the Git object.
Final Answer:
Run git hash-object file.txt and compare output with the SHA-1 hash -> Option C
Quick Check:
Compare file hash with SHA-1 using git hash-object [OK]
Hint: Use git hash-object to get file hash for comparison [OK]
Common Mistakes:
Using git show to compare file content directly
Trying git diff with SHA-1 hash and file
Using git cat-file incorrectly on files
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.