Design: Version Control with Git - command line.
The basic steps
STEP 1
INIT: create the local repository (in directory of software):
git init
basic example
setup directory called BasicAppExample where will put the code
run git init
STEP 2
develop SOME little part of code and unit test (see Testing for discussion of testing)
basic example
create some simple code and place it in your directory.
For example here is a "Hello World Code" For Java*********use any language you have experience with and feel comfortable in using*******************
public class BasicAppExampleMain { public static void main(String[] args) { // Say hello System.out.println("Hi"); } }
STEP 3
ADD files you want to commit --example to add all files
git add *
basic example
STEP 4
COMMIT (specify a message and commite all added files)git commit -am "added new code for XXX"
basic example
STEP 5
check your status
git show
basic example
GIT COMMAND LINE TIPS FROM ATLASSIAN
Here is a list of some basic Git commands to get you going with Git.
For more detail, check out the Atlassian Git Tutorials for a visual introduction to Git commands and workflows, including examples.
Git task | Notes | Git commands |
---|---|---|
Tell Git who you are | Configure the author name and email address to be used with your commits.
Note that Git strips some characters (for example trailing periods) from user.name. |
git config --global user.name "Sam Smith"
git config --global user.email sam@example.com |
Create a new local repository | git init |
|
Check out 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 files | Add one or more files to staging (index): | git add <filename> git add * |
Commit | 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 |
|
Push | Send changes to the master branch of your remote repository: | git push origin master |
Status | List the files you've changed and those you still need to add or commit: | git status |
Connect to a remote repository | 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 | |
Branches | Create a new branch and switch to it: | git checkout -b <branchname> |
Switch from one branch to another: | git checkout <branchname> |
|
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 |
|
Delete a branch on your remote repository: | git push origin :<branchname> |
|
Update from the remote repository | 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:
View the conflicts against the base file: Preview changes, before merging: |
git diff
git diff --base <filename> git diff <sourcebranch> <targetbranch> |
|
After you have manually resolved any conflicts, you mark the changed file: | git add <filename> |
|
Tags | 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 |
|
Undo local changes | 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 | Search the working directory for foo(): | git grep "foo()" |