In Git, _______ can be used to temporarily switch to another branch without committing the current work.

  • git checkout
  • git merge
  • git branch
  • git stash
In Git, the command 'git checkout' is used to switch between branches. It allows you to navigate between different branches without committing your current changes.

Which Git hook would you use to run scripts before a commit is finalized?

  • pre-commit
  • post-commit
  • pre-push
  • post-receive
The pre-commit hook in Git is used to run scripts and checks before a commit is finalized, allowing developers to perform pre-commit validations.

How can you revert a pushed commit in Git without losing history?

  • git reset
  • git revert
  • git rollback
  • git backout
To revert a pushed commit without losing history, use git revert. This command creates a new commit that undoes the changes introduced by the previous commit, preserving the commit history and avoiding force pushes.

How can you identify the specific commits that introduced conflicting changes during a merge in Git?

  • git blame
  • git show
  • git diff
  • git log
When a merge conflict occurs, using git diff will help identify the conflicting changes introduced by specific commits. This command shows the differences between the working directory and the index or a tree, making it useful for inspecting changes.

In Git, a _______ merge is used to integrate changes from one branch into another without creating a merge commit.

  • Fast-Forward
  • Squash
  • Recursive
  • Cherry-pick
The correct option is Fast-Forward. A Fast-Forward merge in Git is used to integrate changes from one branch into another when there are no new changes on the target branch. It performs a simple "move forward" of the branch pointer, avoiding the creation of a merge commit.

Changing the history of public branches is generally discouraged because it can lead to ________ for other collaborators.

  • synchronization issues
  • confusion
  • conflict resolution
  • frustration
The correct option is (c) conflict resolution. Altering the history of public branches can create conflicts for other collaborators, making it challenging to resolve differences in the repository. It's a good practice to avoid history changes on shared branches.

To ignore file changes in your working directory, you should update the _________ file in your Git repository.

  • .gitignore
  • .gitconfig
  • .ignore
  • .exclude
The correct option is .gitignore. This file contains a list of file patterns that Git should ignore when tracking changes in your working directory. It's useful for excluding temporary files, build artifacts, and other files that shouldn't be part of your version control.

The ________ model in Git is ideal for open-source projects where contributors do not have direct write access to the main repository.

  • Forking
  • Centralized
  • Distributed
  • Feature Branching
The forking model in Git is ideal for open-source projects where contributors do not have direct write access to the main repository. Contributors fork the main repository, make changes in their forked copies, and then create pull requests to propose changes to the main repository. This model allows for a decentralized contribution workflow, making it easier for multiple contributors to work on the project simultaneously.

How can you create an annotated tag in Git that includes a message?

  • git tag -a -m "Your message here"
  • git tag -m "Your message here"
  • git tag -s -m "Your message here"
  • git tag -l "Your message here" -a
Annotated tags in Git, which include a message, can be created using the command git tag -a -m "Your message here". The -a flag specifies that the tag will be annotated, and the -m flag allows you to include a message with the tag, providing additional information about the tag, such as release notes or important details related to that version.

When a merge conflict occurs, what does Git use to mark the conflicted area in the files?

  • <<<<<<< HEAD, =======, >>>>>>> branch_name
  • <<<<<<< conflict_start, =======, >>>>>>> conflict_end
  • <<<<<<<, =======, >>>>>>>
  • <<<<<<< HEAD, conflict_marker, >>>>>>>
When a merge conflict occurs, Git uses the conflict markers <<<<<<< HEAD, =======, and >>>>>>> branch_name to indicate the conflicting changes between the current branch (HEAD) and the branch being merged. Developers need to manually resolve these conflicts by editing the file to remove the markers and choose which changes to keep. The HEAD marker denotes the changes from the current branch, and the branch_name marker indicates the changes from the other branch.