Skip to content

Github Basics

Mário Cristóvão edited this page Jun 11, 2023 · 4 revisions

Basic commands

To use Git effectively, developers utilize specific commands to manage code repositories. These commands can be executed through the command line or by leveraging Git applications like GitHub Desktop or GitKraken. Below are some common commands used with Git:

  • git clone creates a local copy of an existing project from a remote repository. This command retrieves all the project's files, history, and branches, allowing you to work on the code locally.
  • git add stages changes for the next commit. When you make modifications to your files, Git tracks them, but it doesn't automatically include them in the next commit. The git add command allows you to specify which changes should be part of the next snapshot, preparing them for commit.
  • git commit saves a snapshot of the staged changes to the project's history. Think of a commit as capturing a photo of the staged files at a particular moment. It records the changes you've added using git add and incorporates them into the project's history. Each commit is accompanied by a commit message that describes the changes made.
  • git pull updates your local repository with the latest changes from the remote repository. If other contributors have made changes to the codebase, the git pull command fetches and merges those updates into your local branch, ensuring you have the most recent version.
  • git push uploads your local commits to the remote repository, updating it with your changes. After making local commits, you can use git push to send those commits to the remote repository, allowing others to access and review your work. This is particularly useful when collaborating with others on a project.

For a comprehensive reference guide to Git commands, you can refer to the official Git documentation.

Branches

Branching is a fundamental aspect of Git that allows developers to work on different versions of a codebase simultaneously. Branches provide an isolated environment where you can make changes without affecting the main codebase. Here are some key points about branches:

  • A branch is essentially a separate line of development within a repository.
  • The main branch, usually named main or master, represents the default and stable version of the codebase.
  • Developers can create new branches to work on specific features, bug fixes, or experiments.
  • Changes made on a branch do not impact other branches or the main codebase until they are merged.
  • Branches enable collaboration by allowing multiple developers to work on different aspects of a project concurrently.

It's good practice to create branches for new features or bug fixes, ensuring that changes are isolated and can be easily reviewed and merged when ready.

Issues

GitHub provides an issue tracking system that helps manage and organize tasks, bugs, feature requests, and discussions related to a repository. Here are some points about issues:

  • An issue represents a single item in the issue tracking system.
  • Issues can be created to report bugs, suggest enhancements, or discuss ideas.
  • They can be assigned to individuals or teams, enabling task assignment and accountability.
  • Issues often include labels, milestones, and assignees to provide more context and categorize them effectively.
  • Users can comment on issues to provide additional information, ask questions, or discuss potential solutions.
  • The issue tracking system facilitates collaboration and transparency, ensuring that everyone involved is aware of the project's progress and challenges.

Using the issue tracking system effectively can greatly enhance project management and facilitate communication among contributors.

Pull Requests

A pull request (PR) is a feature provided by GitHub that facilitates code review and collaboration on a Git repository. Pull requests allow contributors to propose changes, discuss modifications, and review code before merging it into the main branch. Here's what you should know about pull requests:

  • A pull request represents a set of changes that you wish to merge into a branch (often the main branch).
  • Pull requests provide an opportunity for peers to review the proposed changes, leave comments, and suggest improvements.
  • Discussions within a pull request help ensure that code changes meet the project's requirements and adhere to established coding standards.
  • Continuous Integration (CI) tools can be integrated with pull requests to automatically run tests and checks on the proposed changes.
  • Once a pull request is approved and passes all necessary checks, the changes can be merged into the target branch, typically the main branch.

Pull requests are essential for maintaining code quality, promoting collaboration, and enabling a smooth workflow in a Git-based development environment.

Clone this wiki locally