blog posts

What is GitHub? – From application to how to use Github

What is GitHub? – From application to how to use Github

The world of programming is surprisingly wide and wide, and thanks to the advancement of technology and the great use of computer science in other fields, it is not surprising that many problems in various fields can be solved by coding and building the required software. solved. However, the question that arises is “what is the best way to present and present a programming and software development project”.GitHub

Unlike other fields, presenting a research paper or blog post may not be enough to describe the activities that took place in the programming process of a project, as well as the features of the developed program. Therefore, there is a need for a more advanced tool for version management and project organization.

GitHub is actually for this purpose. In this article from Faradars magazine, in response to the question “What is GitHub”, we introduce this very useful tool for presenting projects.

In response to the question, “What is GitHub”, we can briefly say that “Github” is a version control system. We will explore the concept of “Version Control System” as well as other related issues.

What are the prerequisites for learning GitHub?

In this section, we have reviewed some introductory concepts and topics related to GitHub, including the concept of “Version Control Systems”, which will provide you with useful information.

What is a version control system?

“Version Control System” is a tool that helps developers manage changes made to files and directories (files and folders). There are several version control systems, one of which is called Git.

“Version control”, also known as “source control”, is used to maintain multiple versions of the source code. In other words, this system is used to track the changes that have been made to the source code over time.

The application of the version control system is not limited to this, and the possibility of programmers’ participation and cooperation with each other, deployment of source code from local computers to “Staging Servers”, then to “Testing Servers” and finally to “Environment” provides “production”. The version control system is an integrated tool that allows us to deploy our code in the cloud.

It should be noted that “staging” servers are used to safely test applications in an environment similar to the production environment and help to discover software problems before the product is released.

What are the applications of version control system?

“Version control” provides features to the programmer that make the software development process easier. In the following, we have listed these items.

Git training, Git Hub and Git Lab (free)

Backup: As the project progresses, we save the work done.
Record keeping: We compare the current version of the project with a desired version (that we have already made).
View changes: We follow the changes that have occurred in the project accurately and line by line.
Collaboration: “Version control” allows multiple users to contribute and collaborate on a specific project at the same time, and this is done by avoiding possible interferences, such as accidentally overwriting the work of one user over the work of another user.

What are the advantages of version control system?

Using version control in web development has many advantages, some of which we will review below.

No data is lost. The way data is stored in Git is that it never gets lost.
It’s easy to go back to any part of an existing history. Git stores a history of changes and allows the user to revert to a desired version.
It makes it easier to avoid rewriting. Git will automatically notify you when your work conflicts with another work.
Changing the dimensions of work has become easy. Git makes project scaling easier by synchronizing what teams have done.

Who uses version control?

The version control system can be used by the people listed below.

  1. DevOps teams
  2. Software development teams
  3. Engineering teams
  4. Data science teams
  5. Other people specializing in technology

What are the types of version control systems?

Version control systems include 2 categories: “Centralized” and “Distributed”.

What is a centralized version control system?

In Centralized Version Control Systems (CVCS), all project contents are stored on a central server. Each user receives the code from the “Master Repository” or server and sends the changes made on it to the central version. So to register any changes, we need to connect to the server. Centralized version control is easier to learn than distributed version control.

What is distributed version control?

The mechanism of “Distributed Version Control Systems” (DVCS) is similar to centralized version control mechanisms. The biggest difference between the two is that in the centralized version, instead of a single repository on the server, each programmer keeps a “copy” of the entire history on their local computer.

 GitHub

The distributed version control system is more complex and much faster than its centralized version. Also, in addition to not relying on network performance, they also provide offline access.

What is a gate?

Despite what is shown about the life of programmers in movies and the image that the general public has of developers and think of them as isolated and far from social life, social life and cooperation (participation) play a significant role in this group of people. By the way, Git and GitHub are used as a tool in this regard and for collaboration between programmers.

Git is a free and open source “distributed version control system” that tracks changes made to any set of computer files. One of the uses of Git is to create coordination between programmers who work on a common source code and collaboratively advance the development process of the project. The goals of Git include high speed, data integrity, and other things.

Git was written by Linus Torvalds in 2005 to develop the Linux kernel. Of course, other kernel developers also contributed to the development and creation of its initial version. This system is licensed under the GPL2 license and is maintained by Junio Hamano. In the following, we will briefly review some of the terms in Git together.

What is a Repository?

“Repo”, “Repository” or “Repository” is a collection of files and folders that we are going to track with Git. In other words, it can be said that the repository keeps the history of changes made by the team members on the project.

What kind of tool is GitHub?

GitHub is one of the most popular remote storage solutions for Git repositories. It also allows us to set access permissions for projects, track and submit bugs, subscribe to repository notifications, use a GUI instead of the command line, and more. Normally, repositories are published as “Public”, but by paying a fee we can also have “Private” repositories.

What does Commit mean in Git?

The term “commit” refers to the process of saving the changes made in the project. Note that commits are on the local system until they are pushed to the remote repository.

What is meant by push in git?

The “push” action is actually a complement to the “commit” action. It can be said that “Pushing” is done to synchronize our commits with the cloud platform (or GitHub). We can push multiple commits.

GitHub

What is meant by Branch in Gate?

If we consider the Git repository as a tree, the trunk of the tree is considered the “Master Branch”. We also call the branches of this tree “Branch”. Branches are actually separate instances of code that branch off from the main code.

The reason for creating a branch may be to add a new feature to the project or for testing purposes. By doing this, the integrity of the project is maintained, and there is a way to revert to the previous state in case of sabotage. They also allow us to do our own work without disturbing the work of other team members (or vice versa).

What is the meaning of Merge in Git?

When the desired branch is complete (the desired development is done and its bugs are fixed as much as possible) and is ready to become part of the main code of the project, we can merge it into the “Master Branch” (Master Branch). Merge). A “merge” is nothing more than merging (merging) 2 branches together, so that our new or updated code becomes an official part of the main codebase, and anyone who creates a branch from the point of the merge onwards Our codes will be a part of it.

What does Clone mean in Git?

Cloning takes the entire online repository and creates an exact copy of it on our local machine. There are many reasons for this, the most important of which can include starting a project from a faulty repository, switching workstations, or starting mid-project with a new team.