Skip to content

Latest commit

 

History

History
257 lines (173 loc) · 4.75 KB

File metadata and controls

257 lines (173 loc) · 4.75 KB

git

NAME

git - the content tracker

SYNOPSIS

git [--version] [--help] [-C ] [-c =] [--exec-path[=]] [--html-path] [--man-path] [--info-path][-p|--paginate|--no-pager] [--no-replace-objects][--bare][--git-dir=] [--work-tree=][--namespace=][--super-prefix=] []

DESCRIPTION

Git is a fast, scalable, distributed revision control system with an unusually rich command set that provides both high-level operations and full access to internals.

EXAMPLES BASICS

Create a new repository using the command line

  • Create a directory using mkdir command or manually
  • Go inside that directory using the terminal
  • Execute the following set of commands for following set of functions
  • To clone a repository
git init
git clone https://repository-url
  • To pull the latest changes (when you are already inside the directory containing the .git file which is generated when you execute the git init command for the first time)
git pull origin <branch-name>

To push the changes to the master branch

Points worth noting here

  • git add -A stages All
  • git add . stages new and modified, without deleted
  • git add -u stages modified and deleted, without new
git remote show origin
git add .
git status
git commit -m "Name-for-this-commit"
git push -u origin master

Incase you want to change the origin url then you can use the command

git remote show origin
git remote set-url origin https://repository-url
git remote add origin https://repository-url

EXAMPLES

Tell Git who you are

git config --global user.name "Sam Smith"
git config --global user.email sam@example.com

Create a new local repository

git init

Checkout a repository

  • Create a working copy of a local repository:
git clone /path/to/repository

For a remote server, use:

git clone username@host:/path/to/repository

Add one or more files to staging (index):

git add <filename>
git add *
git add .

Commit changes to head (but not yet to the remote repository)

git commit -m "Commit message"

Commit any files you've added with git add, and also commit any files you've changed since then:

git commit -a

Send changes to the master branch of your remote repository:

git push origin master

List the files you've changed and those you still need to add or commit:

git status

If you haven't connected your local repository to a remote server, add the server to be able to push to it:

git remote add origin <server>

List all currently configured remote repositories:

git remote -v

Create a new branch and switch to it:

git checkout -b <branchname>

Switch from one branch to another:

git checkout <branchname>

Other Essential commands

List all the branches in your repo, and also tell you what branch you're currently in:

git branch

Delete the feature branch:

git branch -d <branchname>

Push the branch to your remote repository, so others can use it:

git push origin <branchname>

Push all branches to your remote repository:

git push --all origin

Fetch and merge changes on the remote server to your working directory:

git pull

To merge a different branch into your active branch:

git merge <branchname>

View all the merge conflicts:

git diff

View the conflicts against the base file:

git diff --base <filename>

Preview changes, before merging:

git diff <sourcebranch> <targetbranch>

After you have manually resolved any conflicts, you mark the changed file:

git add <filename>

You can use tagging to mark a significant changeset, such as a release:

git tag 1.0.0 <commitID>

CommitId is the leading characters of the changeset ID, up to 10, but must be unique. Get the ID using:

git log

Push all tags to remote repository:

git push --tags origin

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.

git checkout -- <filename>

Instead, to drop all your local changes and commits, fetch the latest history from the server and point your local master branch at it, do this:

git fetch origin
git reset --hard origin/master

Search the working directory for foo():

git grep "foo()"

To un-commit the changes you have recently committed to local. Note the "" is due to the shell.

git reset --soft HEAD\^

To check the size of you git repo

$ git bundle create tmp.bundle --all
$ du -sh tmp.bundle
 19M    tmp.bundle