0% found this document useful (0 votes)
0 views6 pages

Git and Github Module

The document provides an overview of Git and GitHub, explaining Git as a Version Control System that manages code versions and GitHub as a platform for hosting Git repositories. It includes instructions for getting started with Git, including installation, configuration, and connecting to GitHub, as well as detailed guidance on using Git commands for branching, merging, and resolving conflicts. Additionally, it discusses the pros and cons of merging versus rebasing in Git, highlighting the importance of understanding these concepts for effective version control.

Uploaded by

delavegan2201
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
0 views6 pages

Git and Github Module

The document provides an overview of Git and GitHub, explaining Git as a Version Control System that manages code versions and GitHub as a platform for hosting Git repositories. It includes instructions for getting started with Git, including installation, configuration, and connecting to GitHub, as well as detailed guidance on using Git commands for branching, merging, and resolving conflicts. Additionally, it discusses the pros and cons of merging versus rebasing in Git, highlighting the importance of understanding these concepts for effective version control.

Uploaded by

delavegan2201
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

GIT AND GITHUB

A developer’s best friend

TABLE OF CONTENTS
What is git? ................................................................................................................................................... 3
What is Github? ............................................................................................................................................ 3
Getting Started with git ................................................................................................................................ 3
Confirm That You Have git ........................................................................................................................ 3
Git Installation........................................................................................................................................... 3
Configuring git ........................................................................................................................................... 3
using git/github ............................................................................................................................................. 4
Connecting git with Github ....................................................................................................................... 4
git branching ............................................................................................................................................. 4
Merging vs Rebasing ................................................................................................................................. 5
git merge ................................................................................................................................................... 5
PROS ...................................................................................................................................................... 5
CONS ..................................................................................................................................................... 5
git rebase .................................................................................................................................................. 5
PROS ...................................................................................................................................................... 5
CONS ..................................................................................................................................................... 5
Merge Conflicts ......................................................................................................................................... 5
WHAT IS GIT?
Git is a Version Control System (VCS) designed to make it easier to have multiple versions of a code base,
sometimes across multiple developers or teams. It allows you to see changes you make to your code and
easily revert them.

Git is different from Github.

WHAT IS GITHUB?
Github.com is a website that hosts git repositories on a remote server. Hosting repositories on Github
facilitates the sharing of codebases among teams by providing a Graphic User Interface (GUI) to easily fork or
clone repositories to a local machine.

By pushing repositories to Github, you will pretty much automatically create your own developer portfolio as
well.

GETTING STARTED WITH GIT


Confirm That You Have git
1. Open your terminal and run ‘git’
2. If you see a ‘command not recognized’ error, you probably haven’t installed git yet

Git Installation
Git can easily be installed following this link, https://git-scm.com/downloads, and choosing a download that
fits your local machine.

Git can be used and installed on Windows, MacOS, and Linux/Unix operating software.

Configuring git
Your commits will have your name and email attached to them. To confirm that this information is correct,
run the following commands:

$ git config --global user.name


> should be your name, i.e. Jon Rosado

$ git config --global user.email


> should be your email, i.e. [email protected]

To fix either, just add the desired value in quotes after the command:

$ git config --global user.name “Jon Rosado”

$ git config --global user.email “[email protected]


USING GIT/GITHUB
Connecting git with Github
 To prevent having to enter your password each time you push up to Github, you must configure git and
Github to recognize Secured Shell (SSH) keys that you generate.
 To check and see if you have any recognized SSH keys active on Github, go to
https://github.com/settings/keys . If you do not see any SSH keys listed, you do not have SSH configured
with Github. To know how to configure your Github with SSH, follow this guide:
https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-
and-adding-it-to-the-ssh-agent
 If using Mac OS X, you can also configure your keychain to automatically enter your password via HTTPS.
 From your project repository on Github, navigate to the Issues tab and create a new Issue
 From the command line, use git to create a new branch off master to make your edits to. To tie the
branch to your issue on Github, make sure to include the issue number after the branch name, e.g.
branchName # 1
 Stage edits to be committed to your git repository by using git add <file name> to track the files
that you want to add directly or git add . to add all files at the current directory level that you have
worked on.
 Commit changes using git commit -m <message> and be sure to leave a short but descriptive
message detailing what the commit will change when merged to the master branch.
 Push changes to save them by using git push origin <branch name>’
 On Github, create a new pull request for the branch that you have just pushed, and add any clarifying
comments that you deem necessary.
 To close the issue associated with the pull request, tell Github to do so by adding ‘closing <issue
number>’ in the comments. (you can also use ‘closed, fix, fixes, resolve, resolves, and resolved’ before
the issue number as well).
 Github will automatically check for merge conflicts. If there are any, check to see what they are and
resolve them.
 Once everything is up to date, Github will allow you to merge using three separate options: Merge;
Squash and Merge; Rebase and Merge.

git branching
 git branch to view current branches in repo
 git checkout -b <branch name> to create a new branch with branch name
 git checkout <branch name> without ‘-b’ flag to switch to existing branches
Merging vs Rebasing
 From a conceptual standpoint, git merge and git rebase are used to achieve the same ultimate goal:
to integrate changes from one branch into another branch. There are, however, distinct mechanics
to both methods.
 We will be discussing how to use each from the context of adding changes from your master branch
into your current working feature branch.

git merge
PROS
Generally, the easiest option to merge your master branch into your current working feature branch You can
git checkout feature and then git merge master or you could just do it with one command:
git merge feature master. By doing this, you create a new ‘merge commit’ in your feature branch,
which is a non-destructive operation that ties the histories of both branches. This preserves the exact history
of your project.

CONS
The branch that you merge will always have an extraneous merge commit that will be tracked every time you
need to incorporate upstream states. In other words, it essentially creates a forked history at the point where
you merge. This can lead to muddling the history of your branch, thereby making it more difficult for yourself
or other developers to track the history of changes using git log and/or roll back to previous states.

git rebase
PROS
To rebase, you would git checkout feature and then git rebase master. Instead of creating a
merge commit, rebase will move the entire feature branch to start from the tip of the master branch by
rewriting the project history and creating brand new commits for each commit in the original branch. The
result is a singular history with no forking of the commit history.

CONS
Because rebase rewrites project history, you lose the context provided by a merge commit, i.e. you won’t be
able to see when upstream changes were actually integrated into the feature branch. More importantly, you
could potentially cause extreme difficulty by rebasing master to the tip of your feature branch, leading git to
think that your master branch’s history has diverged from the rest. In doing so, everyone else would still be
working from the original master branch, and both masters would need to be merged.

Merge Conflicts
Merge conflicts arise when two members of the same development team work on the same file and try to
merge in their respective changes. The proper way to avoid merge conflicts would be to ensure that only one
branch is fully committed, pushed, and merged to master, allowing the other branch to integrate any changes
before attempting to push and merge to master.
If merge conflicts arise, don’t fret! Many text editors (as well as Github) provide tools to help track down
conflicts and resolve them. Often times, it will show incoming changes juxtaposed with the current state of
your file, and allow you to choose which to keep (one or both).

You might also like