Daily Archives: January 23, 2015

About Github

These 2 days, I did research about github. Let me write down my learning summary.
1. What is github?
It is a version control platform. It can record the changes of a project, and can help developers to collaboratively develop one project together.

2. Repository
It is actually a directory. And it is the unit where a project exists.

3. Branch
Branch is like a copy of a project. You want to modify a project based on an original one, but you don’t want to affect the original one. At this time, make a new branch of it, and modify based on the branch.

4. Clone
It is actually downloading a project. Download a project to your own laptop. After that, you can modify the project as  you want.

5. Fork
You want to contribute to someone’s project, you can click fork. In this way, this project will exist in your own github, and you can modify it as you want. After you done with that, do pull request to the project owner.

Following are some useful commands I summarized:
make current directory working repository
>git init

initialize existing directory
>git init

clone repository
>git clone https://github.com/libgit2/libgit2
or clone to a new directory
>git clone https://github.com/libgit2/libgit2 mylibgit

change file, and push it to your own remote github
>git add [file_name]
>git add .    //this is to add all changed files
>git add A    //this is to add all changed files
>git commit    -m “commit message”    //commit, save the change
>git push origin master    //origin is the remote name, master is the branch you are using.

add remote to master
>git remote add origin https://github.com/user/repo.git

In local master, do merge from branch2
>git merge branch2

check status
>git status

check current git account
>git config user.name
>git config –list

create a new branch
>git checkout -b [name_of_your_new_branch]

switch branch
>git checkout [name_of_branch]

get local repository updated
>git pull origin master

add a new branch
>git branch [new_branch_name]

change to a branch
>git checkout [branch_name]

git push origin master
This pushes to origin from local master to origin master branch

git push origin local-name:remote-name
This pushes on origin, local-branch to remote-branch.
Normally when I do a push in git I do something like git push origin master, which really means push from the local branch named master to the remote branch named master. If you want to push to a remote branch with a different name than your local branch, separate the local and remote names with a colon:

git push origin [local-commit]:remote-branch
push local commit to remote branch in origin

git push origin [local-commit]:remote-branch -f
This one will force push, regardless if there is conflict between local and remote branch

git remote –v
show all remote repos. After this command, we can see where origin is from