What is GitHub?

Malcolm

Administrator
Administrator
Jan 2, 2018
1,065
295
95
Canada
codeforum.org
Hello guys,

I was curious, but what is GitHub exactly? I have a vague idea, but not sure if it's the correct idea. So GitHub is basically an online hosting for your code and you can use certain commands or apps to download it?
 

NAAZANIQUA

New Coder
Apr 4, 2019
23
10
3
USA
www.fusioninformatics.com
Github brings together the world's largest community of developers to discover, share, and build better software or GitHub is a website and cloud-based service that helps developers store and manage their code, as well as track and control.
 
  • Like
Reactions: Malcolm
D

Dan-Kode

Guest
GitHub is an online Version of the Version-Control-Software, Git.

It's where you store what's called "Repositories" and in these Repositories are Directories/Folders and in them is the Source-Code for the Projects and more Folders. Most of GitHub is interacted with, using Git. You commit Code, somebody will review it and they'll comment on it, giving their Opinion on the Code and then it will be "Pushed" to a "Branch" or it will stay as a "Pull-Request" if the Reviewer decides to not let it through for whatever reason.

Branches are like Storage-Boxes for your Files. There will be different Files in each Branch and using Git, somebody will either Push their Commit to a Branch called master or another Branch(E.g. development).

Git is your Command-Line for doing your Commits, Pull and Push-Requests and merging Branches. While you can do pretty much all of this stuff on GitHub and you want something easier, it's much better to use Git as you don't have to keep on navigating through Pages and Pages of Code or Project Information. Git also lets you do stuff like see the Commit-Log for a certain Branch(git log branch-name).

GitHub and Git are both used by Open-Source Developers, Corporations and smaller Tech-Companies all over the world. So having experience with GitHub and (primarily) Git, will be a huge benefit for once you leave School and get a Career in Programming.

Hope this helps.
 

eeflores

Coder
Jun 26, 2019
58
17
8
One of the main goals for git and related source code management tools is a historical record of the data you store in it. The branching aspect of git allows you to have multiple versions of a repository (that may vary slightly) without having multiple copies of it (like separate folders for each individual version).

A git commit action is essentially a diff of the current state of the working area and the previous commit. Usually when you perform a commit action in git, you would create a comment that describes the changes made in relation to the previous commit/snapshot eg. "fixed a bug that broke the internet.". Over time you would accumulate a number of commits/transactions to a git repository, and be able to see how the software/text/code in your repository has evolved over time. You would also typically mark specific commits as release versions of the software you create (can be done by tagging), and it would be possible to go back and retrieve specific versions/commits if necessary.

I think git came to popularity as it was initially created by Linus Torvalds of linux fame. At the time there were other source code management tools which are classified as distributed source code version control systems (mercurial, bazaar). This is in contrast to version control software where the repository history was stored in a central location (subversion, cvs, sourcesafe). In a distributed version control system you typically have a copy of the repository history whereever the repository clone is created. This is in contrast to the central location version control management, where there was only a reference to the repository store that contained the source code history.

GitHub has good tutorials on how to work with git repositories. I think one of the main things to look into would be how multiple associated repositories are synchronized together via pull/push/pull request etc. Since each clone of a given repository can diverge in terms of commit history, one of the main aspects is this aspect of synchronizing work amongst developers working on the same project.

It would be a good exercise to go through using git and GitHub in general, within this community - I'm up for it!
 
  • Like
Reactions: Dan-Kode

eeflores

Coder
Jun 26, 2019
58
17
8
One thing to be aware of when working with version control systems is to not store sensitive information in the git repository (passwords, special keys). Deleting these values and then committing the changes does not delete the value from the git repository - it will still be accessible in the commit history. I think there would be a way to purge such a value, but it's something to be mindful of.
 

dubeyrohini

New Coder
Jun 10, 2019
9
0
1
GitHub is a Git repository hosting service, but it adds a lot of its own characteristics. While Git is a command line tool, GitHub provides a graphical interface based on the Web. It also provides access control and many collaboration features, such as wikis and basic task management tools for each project.

 
Last edited by a moderator: