Git basic commands

To view the git config settings

1) git config –list
2) git config user.name

Initializing a git repository and adding files
git init
git add .
git commit -m “comments”

Git pushing changes to an existing repository:
git remote add origin URL_OF_GIT_REPOSITORY
git push -u origin master

git log
git pull –rebase
git stash
git status

 

git discard all local changes/commits and pull from upstream

git reset --hard origin/master

git pull origin master

 

Tutorial : http://rogerdudler.github.io/git-guide/, http://kbroman.org/github_tutorial/pages/fork.html

Advertisements

Working between fork and upstream repository

Merging changes from upstream repository to fork repository:

1) Configure a remote that points to the upstream repository in Git.

i) Open Git Bash.

ii) List the current configured remote repository for your fork.

git remote -v
origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)

iii) Specify a new remote upstream repository that will be synced with the fork.

git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git

iv) Verify the new upstream repository you've specified for your fork.

git remote -v
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)

2) Sync a fork

i) Change the current working directory to your local project.

ii) Fetch the branches and their respective commits from the upstream repository. Commits to master will be stored in a local branch, upstream/master.

git fetch upstream
remote: Counting objects: 75, done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 62 (delta 27), reused 44 (delta 9)
Unpacking objects: 100% (62/62), done.
From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
 * [new branch]      master     -> upstream/master

iii) Check out your fork's local master branch.

git checkout master
Switched to branch 'master'

iv) Merge the changes from upstream/master into your local master branch. This brings your fork's master branch into sync with the upstream repository, without losing your local changes.

git merge upstream/master
Updating a422352..5fdff0f
Fast-forward
 README                    |    9 -------
 README.md                 |    7 ++++++
 2 files changed, 7 insertions(+), 9 deletions(-)
 delete mode 100644 README
 create mode 100644 README.md

If your local branch didn't have any unique commits, Git will instead perform a "fast-forward":

git merge upstream/master
Updating 34e91da..16c56ad
Fast-forward
 README.md                 |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

3) Push the Git changes to your git repository

git push

 

Post to refer for above steps: https://help.github.com/articles/syncing-a-fork/, https://help.github.com/articles/configuring-a-remote-for-a-fork/

 

 

 

 

https://help.github.com/categories/collaborating-on-projects-using-issues-and-pull-requests/

https://help.github.com/articles/configuring-a-remote-for-a-fork/

Git Getting Started

Configure the configuration file for git:

git config --global user.name "YOUR NAME"
git config --global user.email "YOUR EMAIL ADDRESS"

I am currently working with my github account and we can work with over HTTPS or SSH.

For connecting over SSH we need to generate ssh keys:
I have been working with windows cmd but it doesn’t support ssh-keygen so I would be switching to git bash.

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# Creates a new ssh key, using the provided email as a label
Generating public/private rsa key pair.

When you're prompted to "Enter a file in which to save the key," press Enter. This accepts the default file location.
Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

At the prompt, type a secure passphrase. For more information, see "Working with SSH key passphrases".

Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]

 

So after following the above steps we would have generated the keys to be used to connect over SSH. Now we need to add the keys to our account.

Private key needs to be added to the ssh agent.

If you are using Git Bash, turn on ssh-agent:
# start the ssh-agent in the background
eval "$(ssh-agent -s)"
Agent pid 59566

If you are using another terminal prompt, such as Git for Windows, turn on ssh-agent:
# start the ssh-agent in the background
eval $(ssh-agent -s)
Agent pid 59566

Add the ssh key to the ssh-agent
$ ssh-add ~/.ssh/id_rsa

 

Public key needs to be added to the github account

# Copies the contents of the id_rsa.pub file to your clipboard
$ clip < ~/.ssh/id_rsa.pub

Add the public key to the github account.
Github -> Settings -> SSH & GPG keys -> New SSH key -> Fill name of key -> Paste key -> Click Add key  

 

Test the Github connection

ssh -T git@github.com
# Attempts to ssh to GitHub

If you see your username everything is fine and running

Github post for the above process of connecting over ssh.

Connecting over https we just don’t need to do much, we might have to configure proxy with git config –http.proxy

Some interesting post about git which I have come across Post-1