In an open source project, a critical bug is discovered in a release. How should the maintainers use Git to address this issue promptly while maintaining the integrity of the project?
- Cherry-pick
- Revert
- Reset
- Squash
The maintainers should use the "Revert" option. Reverting creates a new commit that undoes the changes introduced by a specific commit, effectively addressing the critical bug while maintaining the integrity of the project history. It is a safer option than resetting or squashing, as it keeps a clear record of the fix without altering existing commits.
A team member needs to review changes made in the past two weeks, but there are too many commits to check individually. What Git command should they use?
- git log --since="2 weeks ago"
- git show --last=2.weeks
- git diff --since="2 weeks ago"
- git blame --since="2 weeks ago"
The correct option is to use "git log --since="2 weeks ago"" to view the commit history for the past two weeks. Git log provides a detailed overview of commits, making it easier for the team member to review changes over the specified period.
To ignore certain files from being tracked in Git, list them in a _______ file.
- .exclude
- .gitignore
- exclude.txt
- ignorefile
The correct option is "b) .gitignore." The .gitignore file is used to specify files or patterns that Git should ignore. This helps in preventing unnecessary files from being tracked, such as temporary files or compiled binaries.
What is the purpose of the git commit command?
- Save changes to the local repository
- Upload changes to the remote repository
- Discard local changes
- Create a new branch
The purpose of the git commit command is to save changes to the local repository. It creates a new commit with the changes you have made, providing a way to track the history of your project.
After reviewing a repository's history, a team leader finds an unauthorized access. What Git practice could have prevented this?
- Branch protection
- Code signing
- Git hooks
- Commit squashing
Branch protection can prevent unauthorized access by defining rules that restrict certain actions on specific branches. By enforcing access controls, the team leader could have prevented unauthorized changes and maintained a secure repository.
Which Git feature is commonly used to trigger a CI/CD pipeline?
- Git Hooks
- Git Stash
- Git Submodules
- Git Branches
Git Hooks are scripts triggered by specific Git events, making them suitable for CI/CD pipeline triggers. Stash, submodules, and branches serve different purposes in Git but are not directly tied to CI/CD.
In Git, a release is often marked with a ________, representing a stable point in the development.
- Tag
- Stash
- Branch
- Commit
In Git, a release is commonly marked with a tag. Tags are labels for specific points in Git history, often used to represent stable versions of the software.
What is the main benefit of conducting code reviews before merging changes?
- Identifying and fixing bugs and issues early in the development process.
- Speeding up the merging process without thorough examination.
- Adding unnecessary complexity to the codebase.
- Code reviews are optional and don't impact the development workflow.
Code reviews help in early bug detection and ensure that the proposed changes meet coding standards. They contribute to better code quality, knowledge sharing among team members, and overall project maintainability.
How does a lightweight tag in Git differ from an annotated tag?
- Contains only a reference to a commit
- Includes additional information like a message
- Points to a branch
- Represents a merge commit
A lightweight tag in Git only contains a reference to a specific commit, while an annotated tag includes additional information such as a tagger name, email, date, and a tagging message. Annotated tags are recommended for important releases or milestones.
Describe the role of 'feature branches' in Git's branching model.
- Long-lived branches for ongoing features
- Temporary branches for hotfixes
- Branches for experimental changes
- Short-lived branches for documentation
'Feature branches' are long-lived branches created for ongoing features or tasks. They allow developers to work on features independently and then integrate them back into the main branch when ready. This promotes a clean and organized development process.
_________ in Git can be automated in an IDE to ensure code quality before commits.
- Code Signing
- Code Linting
- Code Obfuscation
- Code Encryption
Code linting in Git can be automated in an IDE to ensure code quality before commits. Linting checks the code for potential errors, stylistic issues, and adherence to coding standards, helping developers catch and fix issues early in the development process.
The command git _______ is used to clone a remote repository to your local machine.
- pull
- fetch
- clone
- push
The git clone command is used to clone a remote repository to your local machine. It copies the entire repository, including all branches and commit history, to your local system.