Git is a most widely used and powerful version control system for tracking changes in computer files and coordinating work on those files among multiple people. It is primarily used for source code management in software development, but it can be used to keep track of changes in any set of files.
Git was developed by Linus Torvalds in 2005 as an distributed open source software version control software and of course it is free to use. As a distributed revision control system it is aimed at speed, data integrity, and support for distributed, non-linear work flows.
While other version control systems e.g. CVS, SVN keeps most of their data like commit logs on central server, every git repository on every computer is a full-fledged repository with complete history and full version tracking abilities, independent of network access or a central server.
However almost all IDEs support git out of the box and we do not require submit the git commands manually but it is always good to understand these commands. Below is a list of some git commands to work efficiently with git.
The most useful command in git is
git help which provides us all the help which we require. If we type
git help in terminal, we will get
usage: git [--version] [--help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p | --paginate | --no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] <command> [<args>] These are common Git commands used in various situations: start a working area (see also: git help tutorial) clone Clone a repository into a new directory init Create an empty Git repository or reinitialize an existing one work on the current change (see also: git help everyday) add Add file contents to the index mv Move or rename a file, a directory, or a symlink reset Reset current HEAD to the specified state rm Remove files from the working tree and from the index examine the history and state (see also: git help revisions) bisect Use binary search to find the commit that introduced a bug grep Print lines matching a pattern log Show commit logs show Show various types of objects status Show the working tree status grow, mark and tweak your common history branch List, create, or delete branches checkout Switch branches or restore working tree files commit Record changes to the repository diff Show changes between commits, commit and working tree, etc merge Join two or more development histories together rebase Reapply commits on top of another base tip tag Create, list, delete or verify a tag object signed with GPG collaborate (see also: git help workflows) fetch Download objects and refs from another repository pull Fetch from and integrate with another repository or a local branch push Update remote refs along with associated objects 'git help -a' and 'git help -g' list available subcommands and some concept guides. See 'git help <command>' or 'git help <concept>' to read about a specific subcommand or concept.
git help -a will us complete list of git commands
Available git commands in '/usr/local/git/libexec/git-core' add clone fetch interpret-trailers notes remote-testsvn submodule add--interactive column fetch-pack log p4 repack submodule--helper am commit filter-branch ls-files pack-objects replace subtree annotate commit-tree fmt-merge-msg ls-remote pack-redundant request-pull svn apply config for-each-ref ls-tree pack-refs rerere symbolic-ref archimport count-objects format-patch mailinfo patch-id reset tag archive credential fsck mailsplit prune rev-list unpack-file bisect credential-cache fsck-objects merge prune-packed rev-parse unpack-objects bisect--helper credential-cache--daemon gc merge-base pull revert update-index blame credential-store get-tar-commit-id merge-file push rm update-ref branch cvsexportcommit grep merge-index quiltimport send-email update-server-info bundle cvsimport gui merge-octopus read-tree send-pack upload-archive cat-file cvsserver gui--askpass merge-one-file rebase sh-i18n--envsubst upload-pack check-attr daemon hash-object merge-ours rebase--helper shell var check-ignore describe help merge-recursive receive-pack shortlog verify-commit check-mailmap diff http-backend merge-resolve reflog show verify-pack check-ref-format diff-files http-fetch merge-subtree remote show-branch verify-tag checkout diff-index http-push merge-tree remote-ext show-index web--browse checkout-index diff-tree imap-send mergetool remote-fd show-ref whatchanged cherry difftool index-pack mktag remote-ftp stage worktree cherry-pick difftool--helper init mktree remote-ftps stash write-tree citool fast-export init-db mv remote-http status clean fast-import instaweb name-rev remote-https stripspace
git help -g will us a list git concepts
The common Git guides are: attributes Defining attributes per path everyday Everyday Git With 20 Commands Or So glossary A Git glossary ignore Specifies intentionally untracked files to ignore modules Defining submodule properties revisions Specifying revisions and ranges for Git tutorial A tutorial introduction to Git (for version 1.5.1 or newer) workflows An overview of recommended workflows with Git
We can use
git help <command> or
git help <concept> command to know more about about a specific command or concept.
|Configure the author name to be used with your commits.|
|Configure the author email address to be used with your commits|
|Will remove user credential details from the repository|
|List all currently configured remote repository URLs|
|If you haven’t connected your local repository to a remote server, To add a remote server to a local repository|
Git Commit and Push
|Create a file name |
|List the files you’ve changed and those you still need to add or commit|
|Add all or one file to staging|
|Commit changes to head with message|
|Commit any files you’ve added with |
|Send all commits from local repository to remote repository|
|Do a |
|Send changes to the master branch of your remote repository|
|Push a specific branch to your remote repository|
|Push all branches to your remote repository|
Git Checkout And Pull
|To create a new local repository|
|Clone a repository into a new directory|
|Clone a repository into a new directory and point to mentioned |
|To create a working copy of a local repository|
|Download objects and refs from remote repository for master branch|
|To merge a different branch into your active branch|
|Fetch and merge changes on the remote server to your working directory:|
|View all the merge conflicts, View the conflicts against the base file, Preview changes, before merging|
|List all the branches in your repository, and also tell you what branch you’re currently in|
|Switch from one branch to another|
|Create a new branch and switch to it|
|Delete the feature branch from local repository|
|Delete a branch on your remote repository|
|Fetch the latest history (objects & refs) from the remote server for master branch|
|Clean repository to initial stage|
|Reset local repository and point your local master branch to latest history fetched from remote server|
|To bring all changes from remote repository to local repository|
Other Git commands
|You can use tagging to mark a significant change set, such as a release|
|Commit Id is the leading characters of the change set ID, up to 10, but must be unique. Get the ID using|
|Push all tags to remote repository|
|If you mess up, you can replace the changes in your working tree with the last content in head:Changes already added to the index, as well as new files, will be kept|
|Search the working directory for |
Opinions expressed by Java Code Geeks contributors are their own.