Sei sulla pagina 1di 11

PROJECT

GitHub
Website that allows to store your code on Cloud.

USAMA TAHIR (FA16-BCS-012)


ABDUL-REHMAN (FA16-BCS-144)
BILAL SOHAIL (FA16-BCS-157)
NOOR-E-EMAAN (FA16-BCS-286)
NAYAB AMIR (FA16-BCS-322)
What Is GitHub, and What Is It
Used For?

The “Git” in GitHub

To understand GitHub, you must first have an understanding of Git. Git is an open-
source version control system that was started by Linus Trovalds— the same
person who created Linux. Git is similar to other version control systems—
Subversion, CVS, and Mercurial to name a few.
So, Git is a version control system, but what does that mean? When developers
create something (an app, for example), they make constant changes to the code,
releasing new versions up to and after the first official (non-beta) release.
Version control systems keep these revisions straight, storing the modifications in
a central repository. This allows developers to easily collaborate, as they can
download a new version of the software, make changes, and upload the newest
revision. Every developer can see these new changes, download them, and
contribute.
Similarly, people who have nothing to do with the development of a project can
still download the files and use them. Most Linux users should be familiar with this
process, as using Git, Subversion, or some other similar method is pretty common
for downloading needed files—especially in preparation for compiling a program
from source code (a rather common practice for Linux geeks).
Git is the preferred version control system of most developers, since it has multiple
advantages over the other systems available. It stores file changes more efficiently
and ensures file integrity better. If you’re interested in knowing the details, the Git
Basics page has a thorough explanation on how Git works.
The “Hub” in GitHub
Github is a website that allows you to store your code on cloud. It is backed by git
version control system and comes with useful functionality such as pull request
and that makes it very popular and widely used tool.
We’ve established that Git is a version control system, similar but better than the
many alternatives available. So, what makes GitHub so special? Git is a command-
line tool, but the center around which all things involving Git revolve is the hub—
GitHub.com—where developers store their projects and network with likeminded
people.
All this talk about how GitHub is ideal for programmers may have you believing
that they are the only ones who will find it useful. Although it’s a lot less common,
you can actually use GitHub for any types of files. If you have a team that is
constantly making changes to a word document, for example, you could use
GitHub as your version control system. This practice isn’t common, since there are
better alternatives in most cases, but it’s something to keep in mind.
GitHub is a web-based hosting service for software development projects that use
the Git revision control system. GitHub offers both paid plans for private
repositories, and free accounts for open source projects. As of May 2011, GitHub
was the most popular code repository site for open source projects.

WHY TO USE GITHUB

BENEFITS OF USING GITHUB

GitHub is an open-source repository hosting service, sort of like a cloud for code.
It hosts your source code projects in a variety of different programming languages
and keeps track of the various changes made to every iteration. The service is able
to do this by using git, a revision control system that runs in the command line
interface.
Other sources are similar to GitHub—including BitBucket, Microsoft Team
Foundation Server, and more—but the sheer size of the community should be
important to you if you want as many people as possible to see your project. As of
2018, GitHub reported having more than 28 million users, significantly more than
its competitors.
The other differences involve cost. GitHub offers private repositories only at an
additional cost, while a few of the other services offer private repositories for free.
However, these typically come with limited storage and bandwidth.

Using GitHub makes it easier to collaborate with colleagues and peers and look
back at previous versions of your work. If you aren't already using GitHub for your
coding projects, here are a few reasons to consider doing so.

Have Your Code Reviewed by the Community


Your project is a skeleton. It does what you want it to do, but you’re not always
sure how the wider population will implement it, or if it even works for everyone.
Fortunately, when you post your project on GitHub, the wider community of
programmers and hobbyists can download and evaluate your work. They can give
you a heads-up on possible issues such as conflicts or unforeseen dependency
issues.
GitHub Is a Repository
Because GitHub is a repository, it allows your work to get out in front of the
public. Moreover, it is one of the largest coding communities around, so using it
can provide wide exposure for your project and for you. The more people you have
to review your project, the more attention and use it is likely to attract.

Collaborate and Track Changes in Your Code across Versions


As when using Microsoft Word or Google Drive, you can have a version history of
your code so that is not lost with every iteration. GitHub also tracks changes in a
changelog, so you can know exactly what is changed each time. This feature is
especially helpful for looking back in time and quickly identifying changes a
collaborator made.

Use Multiple Integration Options


GitHub can integrate with common platforms such as Amazon and Google Cloud,
as well as services such as Code Climate to track your feedback, and it can
highlight syntax in more than 200 different programming languages.

Follow the Open-Source Trend


Many companies and organizations, large and small, are moving to open-source
solutions. Enterprise DB offers Postgres, an open-source database, and states on its
website that open-source technologies allow for greater flexibility in a constantly
changing environment like technology. It cites the Department of Defense and the
Consumer Financial Protection Bureau as large U.S. agencies that have moved to
open source in order to respond quickly to technology changes.
Open-source projects tend to be more flexible because they respond more rapidly
to market demands. Closed-source programs might exist in a bubble while trying to
convince a target market of its value as opposed to being genuinely responsive.
GitHub provides a community where programmers are constantly working to solve
current problems and making solutions available to the public.

Find Talent for Your Organization


Because of the breadth of the GitHub community, you can sometimes find
programmers working on similar projects or who have skills, experiences, or a
vision that offers a good fit for your organization. By being a part of the
community, you can identify these people, work with them, and possibly even
bring them on board to work for you.
Develop and Implement a Management Strategy
You likely have multiple people working on projects at the same time, and many of
them may be in different locations and possibly even different countries. With the
ability to collaborate on a project through GitHub, you can establish a system for
different collaborators to work together without stepping on each other’s' toes.

For example, you don't want one collaborator addressing a problem in a way that
conflicts with another collaborator's approach. Everyone can know and see what
everyone else is doing, and projects can be managed in whatever way is best for
your staff and your organization's needs.

How to Use GitHub

Step 1. Create a Repository

A repository is usually used to organize a single project. Repositories can contain


folders and files, images, videos, spreadsheets, and data sets – anything your
project needs. We recommend including a README, or a file with information
about your project. GitHub makes it easy to add one at the same time you create
your new repository. It also offers other common options such as a license file.

Your hello-world repository can be a place where you store ideas, resources, or
even share and discuss things with others.

 To create a new repository


 In the upper right corner, next to your avatar or identicon, click and then
select New repository.
 Name your repository hello-world.
 Write a short description.
 Select Initialize this repository with a README.

Step 2. Create a Branch

Branching is the way to work on different versions of a repository at one time.

By default your repository has one branch named master which is considered to be
the definitive branch. We use branches to experiment and make edits before
committing them to master.

 Go to your new repository hello-world.


 Click the drop down at the top of the file list that says branch: master.
 Type a branch name, readme-edits, into the new branch text box.
 Select the blue Create branch box or hit “Enter” on your keyboard.

Step 3. Make and commit changes

Now, you’re on the code view for your readme-edits branch, which is a copy of
master. Let’s make some edits.

On GitHub, saved changes are called commits. Each commit has an associated
commit message, which is a description explaining why a particular change was
made. Commit messages capture the history of your changes, so other contributors
can understand what you’ve done and why.

 Click the README.md file.


 Click the pencil icon in the upper right corner of the file view to edit.
 In the editor, write a bit about yourself.
 Write a commit message that describes your changes.
 Click Commit changes button.
Step 4. Open a Pull Request

Now that you have changes in a branch off of master, you can open a pull request.

Pull Requests are the heart of collaboration on GitHub. When you open a pull
request, you’re proposing your changes and requesting that someone review and pull
in your contribution and merge them into their branch. Pull requests show diffs, or
differences, of the content from both branches. The changes, additions, and
subtractions are shown in green and red.

As soon as you make a commit, you can open a pull request and start a discussion,
even before the code is finished.

By using GitHub’s @mention system in your pull request message, you can ask for
feedback from specific people or teams, whether they’re down the hall or 10 time
zones away.

 Click the Pull Request tab, then from the Pull Request page, click the green
New pull request button.
 In the Example Comparisons box, select the branch you made, readme-edits,
to compare with master (the original).
 Look over your changes in the diffs on the Compare page, make sure they’re
what you want to submit.
 When you’re satisfied that these are the changes you want to submit, click the
big green Create Pull Request button.
 Give your pull request a title and write a brief description of your changes.

Step 5. Merge your Pull Request

In this final step, it’s time to bring your changes together – merging your readme-
edits branch into the master branch.

 Click the green Merge pull request button to merge the changes into master.
 Click Confirm merge.
 Go ahead and delete the branch, since its changes have been incorporated,
with the Delete branch button in the purple box.
Disadvantages:
 Github is less preferred for handling extremely large files or frequently
changing binary files.
 Github does not support 'commits' across multiple branches or tags.
 GitHub does offer private repositories, but this isn’t necessarily perfect for
many.
 Some of GitHub features, as well as features on other online repositories,
are locked behind a SaaS paywall.
 Making changes for the historic commit is difficult. I think there is room for
improvement
 Cannot load more than 100 MB of data at once.
 Contributions to the private repositories are not accounted as expected.
 No three view for each repo. They have extensions for work arounds, but it
intutive and should be a main feature.
 If someone is new to GitHub, one of the challenges is learning all the ins and
outs with the github model, which requires practice and time.
 Unless you pay for github. there are no private repo's which is sad.
 Their project management tools are constantly getting better but I would like
to see them be a viable (lightweight!) Jira replacement.
 User interface
 Free private repository
 Language localization
 Bit of a learning curve but great once you get past it
 Might be hard to pick up from a different background
 No phone support
 Built-in tutorial into the UI
 The pull request interface sometimes generates an error message and
requires you to use a different page to make a pull request.
 Ignoring white space differences should be a UI option, instead, you have to
know about an undocumented query string parameter (?w=1).
 Would be nice to have a view for differences between branches, not just pull
requests.

Advantages:

 GitHub has some of the best documentation around.

 GitHub has Gist’s and GitHub Pages, too.

 Collaboration.

 GitHub does offer private repositories, but this isn’t necessarily perfect
for many.
 Maintain distributed code contributors to a centralized repository.
 Visualize the changes made along with contributor's ID.
 Easy to deploy code from GitHub repo to production boxes.
 Blame/raw features are unique in GitHub.
 Githubs does a great job of visually showing commit history.
 The UI is clean and easy to navigate through. It has a lot of useful features
no matter how small. Such as assigning issues/pull requests, labels and
milestones.
 Gist is a great tool for keeping quick, short snippets in a central location
 The online community surrounding github makes it one of the best learning
resources.
 Github is amazing for people with experience in programming. The public
issue trackers have a wealth of information where I don't usually even need
to go to stackoverflow anymore for help since the problem/solution probably
exist
 They give back to the community as well with amazing applications and
tools like Atom and Electron.
 Github's user interface is better than all the others, which is why many others
just straight up copy it.
 Source control
 Programming collaboration
 Developers community to share knowledge base
 Easy to review, approve/reject and roll out new code
 Great for large teams working on one code repo
 Has great integrations with many popular Git clients like SourceTree or
GitKraken
 Easy to use
 Good support
 used by other engineers in the industry
 Version Control
 Cloning applications
 Merging code/development changes
 Viewing/Presenting code changes
 GitHub has great code review features. You can approve or deny someone's
pull request and add comments.
 GitHub makes it easy to do a diff between changes requested in a Pull
Request.
 GitHub makes it easy to create multiple branches if need be and facilitates
managing those branches.

===============

Potrebbero piacerti anche