Git Examples

Using GitHub and Git on Windows.

First fork on GitHub and then clone

On GitHub do a fork:

https://github.com/YangModels/yang

My clone is:

https://github.com/samans/yang.git

git clone https://github.com/samans/yang

Git Merge Update:

  1. git fetch upstream    (fetch all upstream, aka YangModels/yang, branches and put them in upstream/master etc.)
  2. git checkout master    (switch to your local master)
  3. git merge upstream/master    (merge the changes that you fetched in step 1)

Check that my PC workspace is up-to-date with origin/master

  1. git fetch    (this fetches origin and therefore updates origin/master)
  2. git checkout master    (this switches to master; it also warns you if origin/master is ahead of master)
  3. git pull    (this pulls changes from origin/master to master; this should be a fast-forward)

Do the new work in a branch

git checkout -b newThing

**do the modifications necessary**

**before doing the add or commit, run the check script**

 git add -A (or list the files)

git commit

git push -u origin newThing

Then go to github and do a pull request that will request YangModels/yang to be updated with newThing from origin (my remote).

Example of running Git:  (FYI)

I have a clone of my fork of the YangModels/yang repository on my PC running Cygwin.

To fork and clone:

Get a GitHub account. Mine is https://github.com/samans (this information will be used in the example below).

Go to the YangModels/yang repository: https://github.com/YangModels/yang

To fork:

Click the Fork button and pick your repository as the target.

To clone:

Click on the Clone or download button.

Click on the button that is circled to copy the path to your clipboard.

Go to Cygwin to a folder where you want the clone to be.

Run “git clone <<your repository>>

Syncing with master:

If it has been a while since you cloned, it is very possible that your repository and your local clone on your PC are out of sync with the yang master. If you use the yang repository like I do, I only sync when I want to upload something new. I don’t do development or other work in my clone on my PC. So I want my copy of the repository to be a duplicate of the YangModels/yang master branch.

If this is the first time, you will need to make sure your upstream repository is set correctly.

Do a: “git remote add upstream https://github.com/YangModels/yang

You can check by running git remote -v

My origin is set to my fork and the upstream is set to the YangModels/yang repository.

I need to sync, I can tell by looking at my repository in github:

Fetch Upstream: The brings down the changes from the YangModels/Yang master branch.

git fetch upstream

Check out the master branch of your local repository

git checkout master

Merge the changes from upstream master to your local master

git merge upstream/master

That command has the potential to produce a lot of output.

Now push changes to your remote repository.

git push origin master

Now check github…

Now ready to do whatever updates you need.

Do a checkout and identify a branch

git checkout -b newThing

If you add files you need to do a git add

Do a git commit

Push to my fork

Results in:

Then submit the pull request to YangModels/yang on github

Sidebar