165 lines
3.8 KiB
Markdown
Executable File
165 lines
3.8 KiB
Markdown
Executable File
# Git Basics
|
|
### Create a new repository
|
|
|
|
$ touch README.md
|
|
$ git init
|
|
$ git add README.md
|
|
$ git commit -m "first commit"
|
|
$ git remote add origin https://github.com/example/rhymes.git
|
|
$ git push -u origin master
|
|
|
|
### Getting project from a repository
|
|
|
|
$ git clone https://github.com/example/rhymes.git
|
|
|
|
|
|
|
|
### Tracking New Files
|
|
Add file contents to the index.
|
|
|
|
$ git add README.md
|
|
|
|
Show the working tree status.
|
|
|
|
$ git status
|
|
Record changes to the repository.
|
|
|
|
$ git commit -m "first commit"
|
|
|
|
Push an existing repository and Update remote refs along with associated objects
|
|
$ git push -u origin master
|
|
|
|
### Remove files from the working tree and from the index
|
|
|
|
$ git rm file_name
|
|
|
|
### Fetch from and integrate with another repository or a local branch
|
|
$ git pull
|
|
$ git pull origin master
|
|
|
|
|
|
### Managing branches
|
|
To create a new branch
|
|
|
|
$ git branch branch_name
|
|
|
|
If you know branch lists, you run
|
|
|
|
$ git branch
|
|
$ git branch -a
|
|
|
|
If you are currently on your branch
|
|
|
|
$ git checkout you_branch_name
|
|
|
|
Deleting branch
|
|
|
|
$ git branch -d branch_name
|
|
|
|
### Merging branches
|
|
Before using "git merge", make sure the correct local branch is checked out.
|
|
|
|
$ git checkout master
|
|
$ git merge remote_branch
|
|
|
|
|
|
### View current remotes
|
|
|
|
$ git remote -v
|
|
|
|
Example:
|
|
|
|
origin https://github.com/OWNER/REPOSITORY.git (fetch)
|
|
|
|
origin https://github.com/OWNER/REPOSITORY.git (push)
|
|
|
|
### Adding Remote Repositories
|
|
$ git remote add other_user_name https://github.com/example/rhymes.git
|
|
Example:
|
|
|
|
$ git remote add pb https://github.com/paulboone/ticgit
|
|
|
|
origin https://github.com/OWNER/REPOSITORY.git (fetch)
|
|
|
|
origin https://github.com/OWNER/REPOSITORY.git (push)
|
|
|
|
pb https://github.com/paulboone/ticgit (fetch)
|
|
|
|
pb https://github.com/paulboone/ticgit (push)
|
|
|
|
|
|
|
|
### Fetch a copy of other user's work.
|
|
|
|
$ git fetch user_name
|
|
|
|
|
|
### Removing a remote
|
|
|
|
If you want to know other user's works,
|
|
|
|
$ git remote add other_user_name https://github.com/example/rhymes.git
|
|
|
|
and then you can see works
|
|
|
|
# Merge
|
|
## Review all the branches (both local and remote).
|
|
$ git branch -a
|
|
## Check out a local copy of other_user work and review it.
|
|
$ git remote add name http://branch/name.git
|
|
$ git fetch name
|
|
$ git checkout -b remote_branch name/remote_branch
|
|
$ git diff master remote_branch
|
|
$ git log -1 -p
|
|
## Checkout master and merge Bobs changes in.
|
|
$ git checkout master
|
|
$ git merge remote_branch
|
|
|
|
example,
|
|
|
|
From https://git.com/Alice/rhymes
|
|
de64fd9..95029d3 master -> John/master
|
|
* [new branch] test -> John/test
|
|
* [new branch] test_change -> John/phyo_change
|
|
|
|
|
|
### Rebase forked repository Or update forked repository
|
|
|
|
* Add the remote of original repository, example call it "upstream":
|
|
> $git remote add upstream https://git.autoleum.com/Sai/fserver-fe
|
|
|
|
* Fetch all the branches of that remote into remote-tracking branches,such as upstream/master:
|
|
> $git fetch upstream
|
|
|
|
* checkout master branch
|
|
> $git checkout master
|
|
|
|
* merge branches
|
|
>$ git merge upstream/master
|
|
|
|
* Rewrite your master branch so that any commits of yours that aren't already in upstream/master are replayed on top of that other branch
|
|
> $git rebase upstream/master
|
|
|
|
* Push your forked master, need to use '-f' for first time push
|
|
> $git push -f origin master
|
|
|
|
## Create Patch From Diff
|
|
> $git diff > mypatch.patch
|
|
> $git apply mypatch.patch
|
|
|
|
|
|
## Store Git Credential
|
|
>$ git config credential.helper store<br/>
|
|
>$ git push http://example.com/repo.git<br/>
|
|
Username: [type your username]<br/>
|
|
Password: [type your password]
|
|
|
|
|
|
[several days later]
|
|
>$ git push http://example.com/repo.git<br/>
|
|
[your credentials are used automatically]
|
|
|
|
|
|
## Install GOGS repo From npm
|
|
> $npm install --save git+https://git.mokkon.com/sainw/mokkon-reactjs.git#v1.1.0
|