(FE) at Redaptive Inc. 3. Total Industrial Experience: 6 years. 4. Expertise in: Angular, Reactjs, Nodejs, Firebase, MongoDB, OpenAI Tools… etc. 5. Organiser of Google Developer Groups Jalandhar. 6. Mentor, Speaker and Contributor at Tech Events.
Git 3. Basic Concepts of Git 4. Getting Started with Git 5. Introduction to GitHub 6. How to Use GitHub 7. Collaborating with Git and GitHub 8. Best Practices and Tips 9. Why Use Git and GitHub? 10. Q&A
to a file or set of files over time. • Allows reverting files or projects to a previous state. • Enables comparison of changes over time, identification of last modifications, and understanding of issues' origins.
multiple people working on the same project without conflict. • Backup and Restore: Offers the ability to jump back to any point in the project's history. • Track Changes: Provides visibility on who made changes, when, and why. • Branching and Merging: Supports diverging from the main development line to develop features or fix bugs independently.
prone to errors; involves manual copying of files into a different directory. • Centralized VCS (CVCS): Has a single server for all versioned files and multiple clients that check out files, e.g., CVS, Subversion. • Distributed VCS (DVCS): Clients fully mirror the repository, including its history. Examples include Git and Mercurial. Offers robust data integrity and collaborative flexibility.
distributed version control system designed to handle everything from small to very large projects with speed and efficiency. • History: Developed by Linus Torvalds in 2005 for Linux kernel development. Created to improve upon the weaknesses of other VCS tools and to support distributed, non-linear workflows in an efficient manner.
performance. Committing, branching, merging, and comparing past versions are all optimized for speed. • Data Integrity: Every file and commit is checksummed and retrieved by its checksum at any time. This ensures the integrity of your code history. • Distributed Workflows: Allows multiple developers to work together on the same project without any central repository. Each developer's copy of the codebase is a complete version control repository. • Support for Non-linear Workflows: Git supports rapid branching and merging, and includes tools for visualizing and navigating a non-linear development history.
Flexibility in Workflow Choices: Git allows for various workflows - centralized, feature branch, Gitflow, and Forking workflows, among others. • Robust Branching and Merging: Making and merging branches is a straightforward and fast process. • Better Performance: Git is significantly faster than most other version control systems, making it ideal for modern development practices. • Widespread Adoption: Its popularity makes it easier to find integrations, tools, and community support. • Works Well with Large Projects: Git's performance doesn’t degrade as the project size grows, making it suitable for both small and large projects.
your computer where Git stores the changes to your project. Contains all of your project's files and the history of changes made to those files. • Remote Repository: A version of your project hosted on the internet or network, allowing for collaboration. Changes are pushed to and pulled from remote repositories.
at a specific point in time. Commits include a message describing the changes and allow you to track the history of your project. • Branch: A separate line of development. Branches allow you to diverge from the main line of development, work on new features, or fix bugs, then merge those changes back into the main project. • Merge: The process of combining changes from different branches. Merging integrates the histories of the branches, resulting in a single unified history.
The local directory on your computer where your files live. You make changes to your files in the working directory. • Staging Area: An intermediate area where Git tracks changes; also known as the index. Changes can be added to the staging area from the working directory and then committed to the repository. • Repository: The .git directory inside your project. It stores all of your commits and the history of your project, tracking changes to the project over time.
name with command git config --global user.name "Your Name" • Configure Email: Set your email address with command git config --global user.email "[email protected]" • This information is used in your commits.
• add: Add file changes to your staging area. • commit: Save your staged changes along with a commit message explaining what you've done. • status: Check the status of your changes as compared to your last commit. • log: View the chronological commit history for the current branch.
the cloud, providing a web-based interface for project management. • Facilitates code sharing and publishing within teams or publicly across the global developer community.
projects with tools like pull requests, code review, and branch management. • Issue Tracking: Offers a comprehensive issue tracking system that integrates directly with your projects, allowing for bug tracking, feature requests, and task management. • GitHub Actions for CI/CD: Automates your workflow from code to deployment. Build, test, and deploy your code right from GitHub.
control system that manages changes to files and coordinates work on those files among multiple people. • GitHub: A hosting service that uses Git for version control. It extends Git’s capabilities with additional features for project management. • Essentially, Git is the tool, and GitHub is a service for projects that use Git.
and Cloning Repos • Access token • Cloning a repo git clone https://<username>:<access-token>@<repo-url> • Change directory into project that you cloned cd <project-name>
find open-source projects. Participate by cloning projects, submitting issues, and contributing through pull requests. • Explore trending projects, contribute to ones you're interested in, and learn from the vast resources available.
• Building an Online Portfolio of Your Work • Networking and Community Engagement Through Open Source • Continuous Learning and Improvement Through Real-world Projects