Difference between revisions of "Basic Git Tutorial"

From Embedded Systems Learning Academy
Jump to: navigation, search
(COLLABORATION)
(BRANCHES)
Line 215: Line 215:
 
To update your current repository with a newer one, use the “pull” command.  This command updates the current repository with the current version on the Git server. Pull is different from clone in that it fetches and merges the repository to your local repository, that way you can continue working. Cloning does not do this, and you get a completely new repository.
 
To update your current repository with a newer one, use the “pull” command.  This command updates the current repository with the current version on the Git server. Pull is different from clone in that it fetches and merges the repository to your local repository, that way you can continue working. Cloning does not do this, and you get a completely new repository.
  
== BRANCHES ==
+
== Branches ==
  
 
'''FINISH'''
 
'''FINISH'''

Revision as of 02:55, 22 September 2015

Work In Progress


I will be focusing on the command line for Git and not the GUI. I will also be focusing on Git Lab because that is our class’s main focus.


Anything within “< >” is an option.


Getting Started

Download the Git program here. https://git-scm.com/downloads

You will now be able use it via command line, or with the GUI. It is suggested that you use the command line, as there are more features. To use the Windows command line, go to the start menu -> type “cmd” -> enter. If you wish to use a nicer version of the Windows command line, it is suggested you download ConEmu available here http://www.fosshub.com/ConEmu.html.


If Git does not work on ConEmu, then make sure the options matches the one in the picture. Access options by “windows key + alt + p”. Go to Startup -> tasks and then press the ‘+’ button. Now name it “Git Bash” and then type in the bottom box:

"C:\Program Files\Git\bin\sh.exe" --login –I
PICTURE HERE

Do not touch the parameter box. Press Save. You will now be able to access Git in a new cmd window. Press the drop down menu button near the green ‘+’ button. Press the {Git Bash} option. You are now ready to use Git.


The first thing we will do is set up our SSH key. In this section we till talk about init and clone. None of these deal with uploading and making changes. That will be discussed in the collaboration section.


Setting up SSH key

Go to www.gitlab.com -> Profile settings -> Add SSH Key -> Now open up terminal and type in:

ssh-keygen -t rsa -C "youremail@email.com"

cat ~/.ssh/id_rsa.pub

Generates the key

Shows your key


After concatenating the key, copy and paste the SSH key into the “Key” box. If you are on windows and can’t copy paste type in: clip < ~/.ssh/id_rsa.pub


Your SSH Key is now set up.


Setting a new Git Repository

If you are working on an existing remote repository, then this part is unnecessary. However, if you are working on something, and there is no Git repository, then you must set up a new project on the Git website.


Setting up a new project is simple on Git Lab. Simply go to www.gitlab.com and then click on the green button that says “Add Project”. Type in your project name in the “Project path” box. Add any descriptions about your project. Although it is optional, it is highly suggested you briefly describe your project. Press Create Project once done.


Your project path will now look something like this “https://gitlab.com/username/projectname”. From here, anyone can grab your project via SSH or HTTPS.

SSH path example: git@gitlab.com:username/projectname.git

HTTPS path example: https://gitlab.com/username/projectname.git

See the example on how to upload your local repository to the server.


Setting it up on Eclipse

PICTURE HERE


Commands

INIT

The first thing you want to do before you init is to add a project in the Git website see “Setting up a new Git repository” section. If you have a folder with code that is not on Git, and you wish to put it on the Git server, then you need to initialize Git into your folder. This creates a .git folder, and the current directory is now a Git repository. The .git folder contains Git information such as branches. Initializing your folder is local to your computer and is not yet uploaded onto the server.


git init

git init <directory>

Initialize current directory

Initialize selected directory


CLONE

If you see a repository that you want to work on, you can “clone” it into a directory and start working on it. Cloning it will download the entire repository as well as a .git folder. Note that clone is different from “pull”. This will be explained later. Just use this command once at the beginning of the project unless you want multiple folders.


git clone <repo>

git clone <repo> <directory>

Downloads entire repository to current directory

Downloads entire repository to selected directory

Collaboration

Once you’ve worked on the code and you wish to upload your work to the server, you must first “add” the current snapshot of your work to the index, and then “commit” it. After doing these tasks, “push” your work onto the master. If the master has been updated with someone else’s code, you may pull it to fetch and merge your repository.



Uploading commands

ADD

When you feel like you’ve made changes that you wish to upload to the master, you must first “add” your code. Adding your code puts the current snapshot of your work into the index. This is a local command and does not add anything to the server yet.


If you created your repository, and it has not yet been uploaded, then use “git remote add”. This will communicate your repository to the git server. This still does not upload your repository.

git add <directory/file>

Adds snapshot of current code to index

git remote add origin <git url>

Adds remote to existing repository



COMMIT

After adding your work, you must “commit” it. If you don’t commit and you try to push, you may receive an error saying that you must first commit. Committing your work puts your work’s index into the Head. Committing is essentially a history log about changes made. When you commit you include a message saying what changes you made so others can see it as well. Other developers can see the changes you made, and you can see the changes they made. After committing, you are ready to push your work onto the master

git commit –m “My changes…”

Pushes your work from index to the head. ‘-m’ allows you to write a messages. Make sure the message is meaningful so that others can understand it.



PUSH

After adding and committing your work, you can now push onto the master. This will make changes in the master and everyone may now pull the updated master to their repositories with the changes you’ve made. Because you’ve committed, people can now view the messages and changes you’ve made to the code.


git push origin master

Pushes your local repository to remote server



Downloading commands

PULL

To update your current repository with a newer one, use the “pull” command. This command updates the current repository with the current version on the Git server. Pull is different from clone in that it fetches and merges the repository to your local repository, that way you can continue working. Cloning does not do this, and you get a completely new repository.

Branches

FINISH

EXAMPLES

Starting a new repository

www.gitlab.com

Add project

Create Project


git init

git add .

git commit –m “First Commit”

git remote add origin git@gitlab.com:username/projectname.git

get remote –v

git push origin master


People will now be able to make changes to your code.


Cloning

You see a code you want to work with, so you will clone it into your current directory.


Git clone git@gitlab.com:username/projectname.git


Pushing

After working for some time on a code, you’ve made some changes. Now, you want to push it to master,


git push origin master


Pulling

Teammates made some changes to the code.

Time to update your repository.


git pull origin master


ADD BRANCH EXAMPLE

s