[EdSharp] git-cheatsheet

  • From: Jim Homme <jhomme@xxxxxxxxxxxxxxxxx>
  • To: "edsharp@xxxxxxxxxxxxx" <edsharp@xxxxxxxxxxxxx>
  • Date: Mon, 16 Jan 2017 15:45:30 +0000

Hi,
Below is a living document I wrote for myself about how to work with 
repositories on GitHub and BitBucket. The file is meant to show how to do this 
for people new to Linux and new to Git. It reflects how to work with 
repositories and gives options that work if you are making your own 
repositories or if you are working on a team where the owner of the original 
approves the changes you would like to make. The file does not reflect the most 
efficient ways to do this, because it intends to show how things work as simply 
as possible for someone like myself, not the most technical person alive. 
Hopefully it will help you. I would greatly appreciate it if you would want to 
find and point out any inaccuracies. Especially if I've learned something 
incorrectly, please let me know. Please see below my signature. This is a 
MarkDown file, which is why you see the pound signs and dashes.

Jim

# Git Cheat Sheet

## Introduction

This cheat sheet tells how to use Git , a very popular version control system. 
Git is used in many open-source projects. We will cover the following

- How to install and set up Git on a Windows computer.
- Basic commands for working with files and directories on the UNIX/Linux 
command line. 
- Basic Git commands for making and working with a local repository. 
- Working with a remote repository in a team on both GitHub and BitBucket.
- Resources you can consult if you want more detailed information.

## Installing Git

To install Git, first download it from http://git-scm.com/download/win. The ;
download will start automatically. Once the file has finished downloading on 
your computer, run it. I recommend that you let the installer create a desktop 
shortcut to the Git Bash shell for you. This way, the Git command line 
environment will start for you when you want to work with Git. I also recommend 
that you create a local folder to hold your local repositories that you will 
use to house the changes you work on when you work with teams, and any 
repositories that you work with on your own. I also recommend that you point 
the shortcut to the local folder where you keep your repositories. To do that, 
find the shortcut on your desktop and press **ALT+ENTER**. Tab into the **Start 
in** box and type the path to the local repository. 

## Basic Unix Commands For Directories and Files

Below are some basic commands that will allow you to work with the command 
line, since when you run Git, you will be using a UNIX command line. 

### Print The Current Directory

```
pwd
```

### List the Contents of the Current Directory

```
ls
```

### List files and directories, one per line, alphabetically.

```
ls -1
```

### Change To a Directory

```
cd <directory>
```

Where <directory> is the absolute or relative path of a directory.

Note: The absolute path to a directory starts at the root. The relative path of 
a directory starts at the current directoory.

### Move Up Toward The Root One Level

```
cd ..
```

### Create a Directory

```
mkdir <directory>
```

Where <directory> is the name of the directory to create. You can create a 
directory by specifying either an absolute or a relative directory name. 

## Workflow In Brief For Contributing to a GitHub or BitBucket project

This is a list of the activities you will go through as you work on a project 
on Github or BitBucket.

- Set up Git on your local computer.
- Sign up for an account at http://www.github.com/ or http://www.bitbucket.com/.
- Log onto Github or BitBucket.
- Find the repository you want to work with.
- Click **Fork** to get your own copy of the repository under your account.
- Copy the URL for your new repository to the clipboard using the control for 
that purpose.
- Open Git on your local computer.
- Clone your new repository to your local machine using the URL you copied to 
the clipboard. Tip: On BitBucket, the entire Git command will be on the 
clipboard. In GitHub, the URL only will be in the clipboard. With the Git Bash 
command line open, you can get the contents of the clipboard onto the command 
line by pressing **ALT+SPACE**, **E**, then **P**. You can then use arrow keys, 
**HOME**,  **END**, **BACKSPACE**, and **DELETE** to edit the command line. 
- Create and work on a branch.
- Push the branch back up to your GitHub repository.
- Sync your remote repository to the team repository, if necessary.
- Create a pull request on GitHub or BitBucket for the project owner to review.
- Continue to work on the current branch or make other branches to work on.
- Delete local branch or branches when finished.

## Workflow Details

Below are more details about  the tasks you will perform to make changes to a 
repository. We pick up after you have decided on a project to which you want to 
contribute and have forked the repository. Keep in mind that there are other 
variations on the commands I show here that can make your job easier by 
combining steps, but I present things this way, so that you see every step in 
the process so that you know exactly how it works. I trust that if you want to 
shorten the process once you know how it works, that you can use the `git help` 
command or consult the "Pro Git" book to explore making this process more 
efficient.

### Clone Your Forked repository

Use the following command to put a local copy of your repository onto your 
computer.

```
git clone <repository>
```

<repository> is the URL that you copied to the clipboard when you were finished 
forking the project and would have gotten the URL for the new repository  on 
GitHub or BitBucket.

### Checking The Status of Your Local Repository

Any time you want to check the status of your local repository, use this 
command.

```
git status
```

Tipp: run the `status` command after each other command to get a feel for the 
kinds of information Git keeps track of.

### Create A Branch

Create a branch to keep yourself from accidentally altering the original 
project. Git always creates a branch called master when you clone the 
repository. Note: If a project has more than one branch, you can do the same 
for that branch. You just have to know the name of the branch you want to work 
with. In this example, we assume that you want to change the branch called 
"master."

```
git branch <branch>
```

<branch> is the name of the branch in which you want to put your changes.

Once you have created the new branch, you have to switch to it so you can work 
on it. Git does not switch to a branch when you use the branch command unless 
you use a command argument. To switch to the new branch, run this command.

```
git checkout <branch>
```

<branch> is the branch you created in the previous step.

Git is now pointing to the new branch. Any changes you make will go into this 
branch.

### Change a File

To keep it simple, we're going to say that your going to either change one 
file, or add one to your new branch. So we pick up after you've changed or 
added a file. Once you have saved the file, you would go to the Git command 
line. At this point, your change is not in the new branch.

Type `git status` to see what's going on.

### Adding Your Change To The New Branch

```
git add <file>
```

<file> is the path, beginning at the root directory of your project,  to the 
file you have changed.

Note that so far I have not been able to add multiple files in a directory 
unless I change to the directory. If you want to add multiple files, you can 
use wildcards. For example, to add all the files in a directory, type the 
following command.

```
git add *.*
```

Now run `git status` again to see what just happened.

Note: if you need to make another change to your file, you need to run `git add 
<file>` again.

### Add The File To The Branch of the Local Repository

Your file is not yet in  your repository. To do that, run this command.

```
git commit -m "Message"
```

"Message" is a description of the change, so that you remember what happened.

Once again, run `git status` to see what happened.

### Reviewing What happened

Remember that `git status` shows the state of your local repository. You can 
also run `git status --short` to get more simplified output.

The command `git diff` gives you detailed information about what changed.

The command `git diff --staged` compares the staged files to your last commit. 
The term "staged" means files you have used the `git add` command on, but which 
you have not put into your local repository by running `git commit -m"message"`.

### Print A History Of Commits

```
git log --oneline --decorate --graph --all  
```

 This shows you the commits you have made as you've been working on a local 
repository.

### Merge Your Branch Into Your Local Repository

You would do this when you are satisfied with the changes you want to make. To 
get your new branch into your local repository, use the following two commands.

```
git checkout master
git merge <branch>
```

The first command makes Git point to the branch called master, so that you can 
put your changes into the repository.

<branch> is the name of the branch you were just working on.

The second command puts the new changes into your repository.

### Deleting A Branch

For whatever reason, you might want to delete a branch. You may decide that you 
don't want to merge the branch into your project afterall, or you might simply 
be done working on that branch and want to clean up. To delete a branch, type 
this command.

```
git branch -d <branch>
```

<branch> is the name of the branch you want to delete.
## Put Your Changes Up On GitHub or BitBucket

Now that you've made changes to your local repository, you will want to put 
those changes on your repository on GitHub or BitBucket. If you are working 
alone, chances are that you would want to simply put your changes up on the 
server and move onto the next changes. This guide assumes that you are working 
on a team, however, and that you want your repository to stay in sync with the 
one you forked it from. This section tells how to get your remote repository in 
sync with the original.

### Syncing Your Remote Repository To The Original

A remote is a repository on a server. In otherwords, not on your computer. The 
one on your computer is local. When you first clone or create the local 
repository, Git gives the remote repository the name "origin by default."

### List Remote Repositories

```
git remote -v
```

At this point, git should only show your forked repository, and its name should 
be "origin."

### Specify The Original Repository

Note: we'll name the new remote repository "upstream," just to emphasize that 
origin, the one we created to hold the changes, gets the new material from the 
original, upstream, repository we cloned.

```
git remote add upstream <url>
```

<url> is the URL of the repository we forked before we cloned our fork to our 
local computer. Note: If you lose the name of the repository you forked from, 
you can jjust go to it and pretend that you want to clone it, get the URL onto 
your clipboard, and use it in the `git remote add` command by editing the 
command line.

### List Remote Repositories Again

Now you can verify the new upstream repository you've specified.

```
git remote -v
```

This time you see the names of both the repository you forked and the upstream 
repository.

From this point forward, you no longer have to perform this step.

### Sync Your Forked Repository With The Upstream Repository

It's a good idea to sync your forked repository with the upstream one before 
you start working on new changes, in case you went to bed and someone in 
another part of the world worked on it. So before you start making changes, use 
the below commands.

```
git fetch upstream
git fetch origin
```

Now, to start working on your changes locally, check out your fork's local 
master branch. 

```
git checkout master
```

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
```

### Push Your Changes Up To The Server

When you are done making changes, push your local changes up to your git 
repository on the server by typing the below command.

```
git push origin
```

## Pull Requests

When you are done working on local changes, and you want to let the team know 
that you have made changes and would like them to put them into the team 
repository, you would go to GitHub or BitBucket and create the pull request. 
Each site has an easy way to accomplish this. You should be able to find it 
once you have logged on.

## Resources

- [The Git Home Page](https://git-scm.com/)
- [The BitBucket Home Page](https://bitbucket.org/)
- [The GitHub Home Page](https://github.com/)
- [Pro Git](https://)
To unsubscribe send an email to:
edsharp-request@xxxxxxxxxxxxx
with the subject:
unsubscribe
Visit the homepage of the list at:
//www.freelists.org/webpage/edsharp
change your settings at:
//www.freelists.org/list/edsharp
Download EdSharp at:
http://www.EmpowermentZone.com/edsetup.exe
view the archives at:
//www.freelists.org/archive/edsharp
Contact the list admins by sending an email to:
edsharp-moderators@xxxxxxxxxxxxx

Other related posts:

  • » [EdSharp] git-cheatsheet - Jim Homme