Unit 4 - Practice Quiz

INT331

1 Which command allows you to view the changes between the working directory and the staging area?

A. git diff --cached
B. git diff
C. git diff HEAD
D. git status

2 In the context of Git objects, what constitutes the unique identifier for a commit?

A. A sequential integer ID
B. A user-defined tag
C. A 40-character SHA-1 hash
D. The timestamp of the commit

3 Which command is used to create a new branch and switch to it immediately in a single step?

A. git branch <name>
B. git checkout <name>
C. git checkout -b <name>
D. git switch <name>

4 When performing a git merge, what is a 'Fast-forward' merge?

A. A merge that creates a new commit object
B. A merge where the current branch tip is simply moved up to the target branch tip
C. A merge that resolves conflicts automatically
D. A merge used only for remote repositories

5 Which command displays the commit history along with the diffs introduced by each commit?

A. git log -p
B. git log --stat
C. git log --oneline
D. git show

6 What is the primary difference between git merge and git rebase?

A. Merge rewrites history; rebase preserves history
B. Merge preserves history structure; rebase rewrites history to be linear
C. Merge is used for local branches; rebase is for remote branches
D. There is no functional difference

7 How do you view changes that have been staged but not yet committed?

A. git diff
B. git diff --staged
C. git log --staged
D. git show

8 Which command allows you to temporarily save your changes in the working directory without committing them?

A. git commit --amend
B. git stash
C. git reset --soft
D. git checkout .

9 What is the result of running git stash pop?

A. It deletes the most recent stash without applying it
B. It applies the most recent stash and removes it from the stack
C. It applies the most recent stash but keeps it in the stack
D. It lists all available stashes

10 Which Git command helps determine who modified a specific line in a file and in which commit?

A. git check-attr
B. git diff
C. git blame
D. git log

11 What is the purpose of an 'Annotated Tag' in Git?

A. It is just a pointer to a specific commit
B. It is stored as a full object in the database containing the tagger name, email, and date
C. It allows you to tag a file instead of a commit
D. It automatically updates when new commits are added

12 Which command is used to delete a local branch that has already been merged?

A. git branch -D <branch_name>
B. git branch -d <branch_name>
C. git checkout -d <branch_name>
D. git rm <branch_name>

13 When resolving a merge conflict, what must be done after editing the files to fix the conflict?

A. Run git rebase --continue
B. Stage the files using git add
C. Run git commit immediately
D. Run git push

14 What does the command git rebase -i HEAD~3 allow you to do?

A. Revert the last 3 commits
B. Interactively modify, squash, or drop the last 3 commits
C. Merge the last 3 commits into a new branch
D. Stash the last 3 commits

15 Which command creates a lightweight tag named 'v1.0'?

A. git tag -a v1.0 -m 'version 1.0'
B. git tag v1.0
C. git tag --light v1.0
D. git commit --tag v1.0

16 During a rebase, if you encounter conflicts, which command allows you to proceed after resolving them?

A. git rebase --skip
B. git rebase --continue
C. git rebase --abort
D. git commit

17 What does the command git diff branchA..branchB do?

A. Merges branchA into branchB
B. Shows the changes between the tips of branchA and branchB
C. Shows the common ancestor of both branches
D. Rebases branchB onto branchA

18 Why is it generally advised not to rebase public history?

A. It consumes too much memory
B. It creates merge conflicts automatically
C. It rewrites history, causing synchronization issues for other developers
D. It deletes the remote repository

19 Which option in git log draws a text-based graphical representation of the commit history?

A. git log --graph
B. git log --draw
C. git log --pretty
D. git log --chart

20 What is the command to list all current stashes?

A. git stash all
B. git stash list
C. git stash show
D. git stash --verbose

21 If you want to create a new branch from a specific stash, which command should you use?

A. git stash branch <branchname>
B. git checkout -b <branchname> stash
C. git branch <branchname> --stash
D. git stash pop <branchname>

22 What is the purpose of git merge --no-ff?

A. It prevents a merge commit from being created
B. It forces the creation of a merge commit even if a fast-forward is possible
C. It aborts the merge if conflicts are found
D. It performs a dry-run merge

23 How do you push a specific tag v1.0 to the remote repository?

A. git push origin --tags
B. git push origin v1.0
C. git tag push v1.0
D. git commit --push v1.0

24 Which command removes untracked files from the working tree?

A. git clean
B. git reset
C. git rm
D. git stash drop

25 In an interactive rebase, what does the squash command do?

A. Deletes the commit
B. Combines the commit with the previous one
C. Edits the commit message
D. Pauses the rebase

26 Which of the following describes a 'detached HEAD' state?

A. The repository has no commits
B. HEAD points directly to a commit instead of a branch reference
C. The remote repository is unreachable
D. There are uncommitted changes in the staging area

27 Which command would you use to view the commit history for a specific file?

A. git log <filename>
B. git diff <filename>
C. git show <filename>
D. git status <filename>

28 What happens when you run git stash apply?

A. The top stash is applied and removed from the stack
B. The top stash is applied but remains in the stack
C. All stashes are applied
D. The stash is deleted

29 How can you rename the current branch to 'main'?

A. git branch -m main
B. git rename main
C. git checkout -b main
D. git branch --new main

30 What is the purpose of git reflog?

A. To view the history of branch updates and HEAD movements
B. To view the commit logs of a remote repository
C. To reference the logs of a specific tag
D. To delete old logs

31 Which command deletes the most recent stash entry?

A. git stash delete
B. git stash drop
C. git stash remove
D. git stash pop --no-apply

32 You have unstaged changes in file.txt and want to discard them. Which command do you use?

A. git checkout -- file.txt
B. git reset file.txt
C. git rm file.txt
D. git stash pop

33 What does git tag -l 'v1.8*' do?

A. Deletes all tags starting with v1.8
B. Creates a tag named v1.8*
C. Lists all tags matching the pattern v1.8*
D. Pushes tags starting with v1.8

34 When performing a 3-way merge, which three commits are used?

A. The two branch tips and their most recent common ancestor
B. The last three commits on the current branch
C. The HEAD, the Staging Index, and the Working Directory
D. The local branch tip, the remote branch tip, and the stash

35 Which command allows you to stash untracked files as well?

A. git stash -u
B. git stash --all
C. git stash --force
D. git stash save

36 In an interactive rebase, what does drop do?

A. Moves the commit to a new branch
B. Removes the commit entirely from history
C. Stops the rebase process
D. Squashes the commit

37 To force a push after a rebase (since history changed), which command is used?

A. git push --force
B. git push --rebase
C. git push --overwrite
D. git push --hard

38 What command shows the difference between the staging area and the last commit?

A. git diff --staged
B. git diff HEAD
C. git status -v
D. All of the above

39 How do you apply a specific stash from the list, e.g., index 2?

A. git stash apply stash@{2}
B. git stash apply 2
C. git stash pop 2
D. git apply stash#2

40 What is the primary usage of git show?

A. To show the current status of the repository
B. To display metadata and content changes of a specific object (blob, tree, tag, or commit)
C. To show all branches
D. To show the remote URL

41 Which command would you use to verify if a tag is GPG signed?

A. git tag -v <tagname>
B. git tag --check <tagname>
C. git verify <tagname>
D. git show --signature <tagname>

42 If you want to modify the message of the most recent commit, which command is appropriate?

A. git commit --amend
B. git rebase
C. git config commit.message
D. git reset

43 What defines the structure of the Git history graph?

A. A Linked List
B. A Directed Acyclic Graph (DAG)
C. A Binary Search Tree
D. A Stack

44 Which command allows you to view the diff statistics (summary of insertions/deletions) rather than full code changes?

A. git diff --summary
B. git diff --stat
C. git diff --brief
D. git diff --count

45 How do you tag a past commit (not the current HEAD)?

A. git tag v1.0 <commit_checksum>
B. git tag v1.0 HEAD~1
C. You cannot tag past commits
D. git tag --past v1.0

46 Which command is used to discard all local changes in the working directory and staging area, resetting them to the last commit?

A. git reset --hard
B. git reset --soft
C. git reset --mixed
D. git checkout .

47 What is the equivalent of git merge that results in a cleaner history but modifies commit hashes?

A. git cherry-pick
B. git rebase
C. git stash
D. git revert

48 What happens if you delete a branch that has unmerged work using git branch -D?

A. The commits are permanently lost immediately
B. The commits become dangling but can be recovered via reflog for a certain period
C. Git forbids the action
D. The branch is moved to 'archive'

49 Which command shows the branches that have not yet been merged into the current branch?

A. git branch --no-merged
B. git branch --merged
C. git branch --diff
D. git status

50 In an interactive rebase, what does the reword instruction do?

A. Use the commit, but edit the commit message
B. Use the commit as is
C. Meld the commit into the previous one
D. Remove the commit