How to get a remote repository (from BitBucket, GitHub or anyone)
$ git clone https://github.com/<username>/<repository>.git
If you have added a SSH key, then you can also use this command:
$ git clone [email protected]:<username>/<repository>.git
How to create a new repository from the command line
$ touch README.md
$ git init
$ git add README.md
$ git commit -m "first commit"
$ git remote add origin https://github.com/<username>/<repository>.git
$ git push -u origin master
How to updates files in GitHub repository when it has been already created
First, get the repository and open it..
$ git clone <url:repository> # See above
$ cd <repository>
You can specify the file(s) and/or folder(s) to update
$ git add [<file|folder>[<file|folder>[...]]]
Or you can add the whole directory
$ git add .
Now commit the changes (record them locally):
$ git commit -m "my commit message"
After one or many commits you can use push to upload them into the remote repository
$ git push
NOTE: the first time you will need to enter:
$ git push -u origin master
I'm getting errors
If a commit was added from the Web but not in the local directory, then will be an error trying to add something from a terminal.
To solve this you can:
- Make a copy of your current files
- Download the most up-to-date repository (use
clone) - Update the downloaded repository with your changes
- And now
add,commit, etc..
How to close a bug while committing on GitHub
$ git commit -m "Close #BUG_ID after implement security"
How to change a commit message
If a commit was made and not yet published (previous git push), then it's simple to change its message:
$ git commit --amend -m "A new message for the previous commit"
How to create a branch
$ git checkout -b <newbranch> # Generate and checkout new branch
How to merge Master with Branch
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
$ git fetch
$ git merge origin/<branch>
$ git push
NOTE: before this you may or may not have created a pull request (PR) online, this PR is a concept that applies to GitHub only.
How to merge Branch with Master
HINT: It is the same than above!
$ git checkout <branch>
$ git fetch
$ git merge origin/master
$ git push
NOTE: change the strategy to your convenience, see the man page.
How to remove a Branch
Locally:
$ git branch -d <branch>
Externally:
$ git push origin --delete <branch>
How to undo last commit
If you do not want to lose any change:
$ git reset --soft HEAD^ # Like you never did git commit
After that, remember to do git reset HEAD . to unstage files (it will not destroy any change!).
If you also want to destroy your changes:
$ git reset --hard HEAD^ # Like you were lazy after second last commit
Pay attention with the times that you apply git reset! If you apply it twice, it will revert also the second last commit. You could end up having a diverged branch, then you'll need to do git pull, and conflicts aren't fun ;)
How to undo last merge
$ git reset --hard HEAD~1 # Merge needs to be the last thing done
How to go back in history
First thing is to know where to go, find the hash of the commit to go:
$ git log
commit 1234567890abcdef1234567890abcdef00000000
Author: Name <email>
...
Then deatach the HEAD to the commit wanted:
$ git checkout 123456789 # Using the first nine is more than enough
Generate tags
NOTE: before do it you will like to save any local change (commit & push).
$ git tag -a 1.1 -m "my commit message"
$ git push --tags
Remove tags
This will only remove it locally. Otherwise you may want to take a look at the bottom of this.
$ git tag -d 1.1
User's Configuration
Check your actual configuration with the following commands.
$ git config --get user.name
$ git config --get user.email
Add and/or update the values with the following commands.
$ git config --global user.name "Your name"
$ git config --global user.email "[email protected]"
Some concepts
There is a difference between BRANCH and origin/BRANCH:
BRANCHis the local one andorigin/BRANCHis the remote one
Check out the full list of Git commands.
Is enough to use the previous commands in order to create a new repo?
Cause, from command line, I had some trouble and I solved with this resource
Please, check it.
Anyway, thanks for this useful summary!