What is Git?
Git is the most popular, open-source, widely used, and an example of distributed version control system (DVCS) used for handling the development of small and large projects in a more efficient and neat manner.
It is most suitable when there are multiple people working on projects as a team and is used for tracking the project changes and efficiently supports the collaboration of the development process.
Git is a version control system for tracking changes in computer files and is used to help coordinate work among several people on a project while tracking progress over time. In other words, it’s a tool that facilitates source code management in software development. In case of any unforeseen circumstances, the code can be reverted to any of the previously working versions thereby saving huge efforts.
What is a Git repository?
How can you initialize a repository in Git?
If you want to initialize an empty repository to a directory in Git, you need to enter the git init command. After this command, a hidden .git folder will appear.
test$ git init hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: hint: hint: git config --global init.defaultBranch
hint: hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m Initialized empty Git repository in /Users/npangirahy/Documents/test/.git/
How is Git different from Subversion (SVN)?
Git is a distributed decentralized version control system
SVN is a centralized version control system.
Git stores content in the form of metadata.
SVN stored data in the form of files.
The master contains the latest stable release.
In SVN, the trunk directory has the latest stable release
The contents of Git are hashed using the SHA-1 hash algorithm.
SVN doesn?t support hashed contents.
Name a few Git commands with their function.
- Git config - Configure the username and email address
- Git add - Add one or more files to the staging area
- Git diff - View the changes made to the file
- Git init - Initialize an empty Git repository
- Git commit - Commit changes to the head but not to the remote repository
Difference between git fetch and git pull.
The Git fetch command only downloads new data from a remote repository.
Git pull updates the current HEAD branch with the latest changes from the remote server.
It does not integrate any of these new data into your working files.
Downloads new data and integrate it with the current working files.
Command - git fetch origin
git fetch --all
Tries to merge remote changes with your local ones.
Command - git pull origin master
What do you understand about the Git merge conflict?
A Git merge conflict is an event that occurs when Git is unable to resolve the differences in code between the two commits automatically.
Git is capable of automatically merging the changes only if the commits are on different lines or branches.
What is the process to revert a commit that has already been pushed and made public?
There are two processes through which you can revert a commit: Remove or fix the bad file in a new commit and push it to the remote repository. Then commit it to the remote repository using:
git commit –m “commit message”
Create a new commit to undo all the changes that were made in the bad commit. Use the following command:
What is Git stash?
Let’s say you're developing a module for software and you want to switch branches to work on something else. The issue is you don’t want to make commits in uncompleted work, so you just want to get back to this point later. The solution here is the Git stash.
Git stash takes your modified tracked files and saves them on a stack of unfinished changes that you can reapply at any time. To go back to the work you can use the stash pop.
What is the difference between fork, branch, and clone?
The fork is the process when a copy of the repository is made. It's usually experimentation in the project without affecting the original project. They’re used to advise changes or take inspiration from someone else’s project.
Git branches refer to individual projects within a git repository. If there are several branches in a repository, then each branch can have entirely different files and folders.
Git clone refers to creating a clone or a copy of an existing git repository in a new directory. Cloning automatically creates a connection that points back to the original repository, which makes it very easy to interact with the central repository.
What is ?git cherry-pick??
git cherry-pick enables you to pick up commits from a branch within a repository and apply it to another branch. This command is useful to undo changes when any commit is accidentally made to the wrong branch. Then, you can switch to the correct branch and use this command to cherry-pick the commit.
What is the command used to delete a branch?
- To delete a branch we can simply use the command
git branch –d [head].
- To delete a branch locally, we can simply run the command:
git branch -d <local_branch_name>
- To delete a branch remotely, run the command:
git push origin --delete <remote_branch_name>
- Deleting a branching scenario occurs for multiple reasons. One such reason is to get rid of the feature branches once it has been merged into the development branch.