See also:
git fetch --all && git reset --hard origin/master= Force pull -- force local tree to match remote treegit grep "mystring" $(git rev-list --all) | cut -d: -f2-4 | sort -u= Search entire repo history for string mystring.git grep "mystring" $(git rev-list --all -- lib/util) -- lib/util= Search only under the lib/util path
git push origin --delete feature-123= Delete the feature-123 branch remotely.git submodule update= Update submodules to remove from unstaged changes in parent repogit commit --amend -m 'Commit message'= Amend most recent commit message (requiresgit push --forceif commit already pushed).git add -A= Stage all modified files, including deleted files.git add -A ./*= Stage all modified files, including deleted files, beneath the current path.git add -u= Stage all modified files.
git submodule update --init --recursive= Clone submodules in already-present repo.git clone --recurse-submodules= Include submodules in repo clone.git submodule add ssh://git@server.example.com:7999/ansible-zabbix-agent.git roles/ansible-zabbix-agent= Add submodue to repo.
Submodule configuration in .gitmodules to track the develop branch:
[submodule "roles/ansible-zabbix-server"]
path = roles/ansible-zabbix-server
url = ssh://git@server.example.com:7999/ansible-zabbix-server.git
branch = developTag specific commits to release your software.
git tag v0.1= Tag the current commit as version 0.1.git push origin --tags= Push tags.
Configuring user information used across all local repositories.
git config --global user.name "<FIRSTNAME LASTNAME>"= Set a name that is identifiable for credit when review version history.git config --global user.email "<VALID-EMAIL>"= Set an email address that will be associated with each history marker.git config --global color.ui auto= Set automatic command line coloring for git for easy reviewing.
git init= Initialize an existing directory as a git repository.git clone <URL>= Retrieve an entire repository from a hosted location via url.
git checkout <COMMIT HASH> -- ./file1 ../file2= Revert file1 and file2 to the specified commit.git checkout -- <FILE>= Undo changes made to an unstaged file.git reset <FILE>= Unstage a file while retaining the changes in working directory.git diff= Diff of what is changed but not staged.git diff --staged= Diff of what is staged but not yet commited.git commit -m '<MESSAGE>'= Commit your staged content as a new commit snapshot.
- See also:
git branch= List your branches, a*will appear next to the currently active branch.git branch <BRANCH-NAME>= Create a new branch at the current commit.git merge <BRANCH-NAME>= Merge the specified branch into the current one.
git log branchB..branchA= Show the commits on branchA that are not on branchB.git log --follow <FILE>= Show the commits that changed file, even across renames.git diff branchB...branchA= Show the diff of what is in branchA that is not in branchB.git show <COMMIT-HASH>= Show any object in git in human-readable format.git checkout <COMMIT-HASH>= Checkout the repository at the specified commit.
Versioning file removes and path changes.
git rm <FILE>= Delete the file from project and stage the removal for commit.git mv <CURRENT-PATH> <NEW-PATH>= Change an existing file path and stage the move.git log --stat -M= Show all commit logs with indication of any paths that moved.
Preventing unintentional staging or commiting of files.
.gitignore:
logs/
*.notes
pattern*/
Save a file with desired paterns as .gitignore with either direct string matches or wildcard globs.
git config --global core.excludesfile <FILE> = System wide ignore patern for all local repositories.
git remote -v= Show remote repo info.git remote add <ALIAS> <URL>= Add a git url as an alias.git fetch <ALIAS>= Fetch down all the branches from that git remote.git merge <ALIAS>/<BRANCH>= Merge a remote branch into your current branch to bring it up to date.git push <ALIAS> <BRANCH>= Transmit local branch commits to the remote repository branch.
git rebase <BRANCH>= Apply any commits of current branch ahead of specified one.git reset --hard <COMMIT>= Clear staging area, rewrite working tree from specified commit.
Temporarily store modified, tracked files in order to change branches.
git stash= Save modified and staged changes.git stash list= List stack-order of stashed file changes.git stash pop= Write working from top of stash stack.git stash drop= Discard the changes from top of stash stack.