You start to write code locally in a directory and you want to keep track on file changes in a Git database and then upload (push) it to GitHub.
You have some files already in a directory and you start a Git repo locally by executing
Now stage it and commit it.
git add .
git commit -m 'initial commit'
Once you create a repo on GitHub, you have a link to the GitHub repo in the page. Using that SSH repo link, you can push it to GitHub.
Now configure the remote repo in local Git database.
git remote add origin firstname.lastname@example.org:hiriumi/oci-resources.git
And then, push it to the upstream repo.
git push --set-upstream origin master
You won’t need
--setup-upstream origin master from the subsequent pushes.
Quite often when you are working in a branch in Git, you want to push the committed stuff to the server side. You’d do the following.
git push origin my_long_branch_name_that_has_description_of_this_branch
You can set a global option for “git push” to push the code to the current branch by executing the following command.
git config --global push.default current
Now you can just type…
This saves me so many keyboard typing and copy and paste of the current branch names.
When I want to totally undo the changes I have made, I do…
git reset --hard
This command doesn’t clean newly added but untracked (staged) files. To clean the files…
git clean -fd
How do we unstage staged files in Git? Say you want to unstage file1 in current directly. Here is the command.
$ git reset -- file1
If you need to unsage all files….
$ git reset
There may be a branch someone else pushed to the server and you want to work with it. What should you do? Here is how you can accomplish.
First, create a local branch out of the remote branch.
$ git fetch origin remote-branch-name:remote-branch-name
Now checkout the branch.
$ git checkout remote-branch-name
You don’t really want to do something like…
$ git pull origin remote-branch-name
This will get the source from the remote-branch-name branch and merge the code into the master (or whichever you have checked out) branch automatically unless you have a conflict. I had to do
git reset –hard [the commit ID] to undo it.