{"id":23973399,"url":"https://github.com/fahmizainal17/git_notes_project","last_synced_at":"2026-02-12T17:01:05.615Z","repository":{"id":207345199,"uuid":"719021423","full_name":"fahmizainal17/Git_Notes_Project","owner":"fahmizainal17","description":"A repository for storing notes and tutorials related to Git, helping to master version control and collaborative software development.","archived":false,"fork":false,"pushed_at":"2024-10-11T09:19:55.000Z","size":37,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-23T16:26:33.225Z","etag":null,"topics":["git","git-tutorials","tutorial-code"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fahmizainal17.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-15T09:30:28.000Z","updated_at":"2024-10-11T09:19:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"e8132a05-b8a4-4042-ba3f-7b7f3025fc02","html_url":"https://github.com/fahmizainal17/Git_Notes_Project","commit_stats":null,"previous_names":["fahmizainal17/git-learning","fahmizainal17/git_notes_project"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fahmizainal17/Git_Notes_Project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fahmizainal17%2FGit_Notes_Project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fahmizainal17%2FGit_Notes_Project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fahmizainal17%2FGit_Notes_Project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fahmizainal17%2FGit_Notes_Project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fahmizainal17","download_url":"https://codeload.github.com/fahmizainal17/Git_Notes_Project/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fahmizainal17%2FGit_Notes_Project/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29373837,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T08:51:36.827Z","status":"ssl_error","status_checked_at":"2026-02-12T08:51:26.849Z","response_time":55,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["git","git-tutorials","tutorial-code"],"created_at":"2025-01-07T04:58:00.038Z","updated_at":"2026-02-12T17:01:05.593Z","avatar_url":"https://github.com/fahmizainal17.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# **📚 Comprehensive Git and Development Environment Syllabus**\n\n---\n\n## **Technologies Used 🔧**\n\n\u003cdiv\u003e\n    \u003ch1 style=\"text-align: center;\"\u003eVersion Control, Development Environment, and Python Project Management\u003c/h1\u003e\n    \u003cimg style=\"text-align: left\" src=\"https://img.icons8.com/color/48/000000/git.png\" width=\"10%\" alt=\"Git Logo\" /\u003e\n    \u003cimg style=\"text-align: left\" src=\"https://img.icons8.com/color/48/000000/github--v1.png\" width=\"10%\" alt=\"GitHub Logo\" /\u003e\n    \u003cimg style=\"text-align: left\" src=\"https://img.icons8.com/color/48/000000/visual-studio-code-2019.png\" width=\"10%\" alt=\"VS Code Logo\" /\u003e\n    \u003cimg style=\"text-align: left\" src=\"https://img.icons8.com/color/48/000000/python.png\" width=\"10%\" alt=\"Python Logo\" /\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\n![Git](https://img.shields.io/badge/Git-F05032?style=for-the-badge\u0026logo=git\u0026logoColor=white)\n![GitHub](https://img.shields.io/badge/GitHub-181717?style=for-the-badge\u0026logo=github\u0026logoColor=white)\n![VS Code](https://img.shields.io/badge/VS%20Code-007ACC?style=for-the-badge\u0026logo=visual-studio-code\u0026logoColor=white)\n![Python](https://img.shields.io/badge/Python-3670A0?style=for-the-badge\u0026logo=python\u0026logoColor=ffdd54)\n\n---\n\n## **📋 Table of Contents**\n\n1. [Git Basics](#git-basics)\n   - [Clone a Repository](#clone-a-repository)\n   - [Update the Local Repository](#update-the-local-repository)\n   - [Create a New Branch](#create-a-new-branch)\n   - [Switch to the New Branch](#switch-to-the-new-branch)\n   - [Add and Commit Changes](#add-and-commit-changes)\n   - [Create a `.gitignore` File](#create-a-gitignore-file)\n   - [Save and Commit `.gitignore`](#save-and-commit-gitignore)\n   - [Push Changes to the Remote Repository](#push-changes-to-the-remote-repository)\n   - [Open a Pull Request](#open-a-pull-request)\n   - [Switch Back to the Main Branch](#switch-back-to-the-main-branch)\n   - [Update the Local Main Branch](#update-the-local-main-branch)\n\n2. [Additional Git Commands and Concepts](#additional-git-commands-and-concepts)\n\n3. [Development Environment Setup](#development-environment-setup)\n   - [Preparation \u0026 Expectation](#preparation--expectation)\n   - [Explore Common Development Operations](#explore-common-development-operations)\n     - [Environment Creation and Activation](#environment-creation-and-activation)\n     - [Common Command Line Commands](#common-command-line-commands)\n     - [Common Python Project Structure](#common-python-project-structure)\n     - [Starting a Project in VS Code](#starting-a-project-in-vs-code)\n\n4. [Extras](#extras)\n\n5. [Additional Reference](#additional-reference)\n\n---\n\n## **1. Git Basics 🚀**\n\n### **Clone a Repository**\n- Clone a repository to get a local copy of the code on your machine.\n```bash\ngit clone \u003crepository-url\u003e\ncd \u003crepository-directory\u003e\n```\n- Replace `\u003crepository-url\u003e` with the actual URL of the repository.\n\n### **Update the Local Repository**\n- Update your local copy to ensure it's synchronized with the main branch.\n```bash\ngit pull origin main\n```\n- Replace `main` with the name of your primary branch if different.\n\n### **Create a New Branch**\n- Create a new branch for feature development or bug fixing.\n```bash\ngit branch feature-branch\n```\n\n### **Switch to the New Branch**\n- Switch your working directory to the new branch.\n```bash\ngit checkout feature-branch\n```\n- Or create and switch in one step:\n```bash\ngit checkout -b feature-branch\n```\n\n### **Add and Commit Changes**\n- After making changes, add them to the staging area and commit. Use clear, descriptive commit messages:\n```bash\ngit add .\ngit commit -m \"feat: add new feature for data processing\"\n```\n- **Best Practice for Commit Messages:**\n  - Use prefixes like `feat:` for features, `fix:` for bug fixes, `refactor:` for code restructuring, `docs:` for documentation updates, etc.\n  - Example: `git commit -m \"fix: resolve edge case issue in metric calculation\"`\n\n### **Create a `.gitignore` File**\n- Specify files and directories to be ignored by Git.\n```plaintext\n# Example .gitignore content\n.idea/\n*.pyc\n```\n\n### **Save and Commit `.gitignore`**\n- Save and commit the `.gitignore` file.\n```bash\ngit add .gitignore\ngit commit -m \"chore: add .gitignore file\"\n```\n\n### **Push Changes to the Remote Repository**\n- Push your committed changes to the remote repository. Specify the branch name:\n```bash\ngit push origin feature-branch\n```\n\n### **Open a Pull Request**\n- Open a pull request from your feature branch to the main branch for code review and merging.\n\n### **Switch Back to the Main Branch**\n- Switch to the main branch.\n```bash\ngit checkout main\n```\n\n### **Update the Local Main Branch**\n- Pull the latest changes from the remote main branch.\n```bash\ngit pull origin main\n```\n\n---\n\n## **2. Additional Git Commands and Concepts 💡**\n\n- **Checking Status:** Use `git status` to see the status of your changes and ensure everything is tracked correctly.\n- **Staging Area:** Understand the importance of the staging area (`git add`) as an intermediate step before committing changes (`git commit`).\n- **Commit Message Standards:** Maintain a consistent format for commit messages, using imperative mood and concise descriptions.\n- **Branch Management:** Use `git branch` to list branches, `git branch -d branch_name` to delete branches, and `git branch -r` to list remote branches.\n- **Undoing Changes:** Use `git revert \u003ccommit-hash\u003e` to undo specific changes without rewriting commit history, or `git reset` for more drastic changes.\n- **Tagging Releases:** Use `git tag -a v1.0 -m \"Initial release\"` to create annotated tags for releases.\n- **Rebasing and Merging:** Use `git pull --rebase` to integrate changes without creating merge commits or `git merge` to combine branches.\n\n---\n\n## **3. Development Environment Setup 🛠️**\n\n### **Preparation \u0026 Expectation**\n\n- **Download VS Code:** Download Visual Studio Code from the [official site](https://code.visualstudio.com/).\n- **GitHub Account:** Ensure you have a GitHub account for version control and collaboration.\n\n### **Explore Common Development Operations**\n\n#### **Environment Creation and Activation**\n- Create and activate a Python virtual environment:\n```bash\npython -m venv venv_name\nsource venv_name/bin/activate  # On Windows use `venv_name\\Scripts\\activate`\n```\n- This keeps dependencies isolated and your project environment clean.\n\n#### **Common Command Line Commands**\n- **Navigation:**\n  - Change directory: `cd \u003cdirectory\u003e`\n  - Move up one directory: `cd ..`\n- **Git Operations:**\n  - Check status: `git status`\n  - Add changes to staging: `git add .` or specify a path: `git add \u003cpath\u003e`\n  - Commit changes: `git commit -m \"feat: add new API endpoint\"`\n  - Push changes: `git push origin branch_name`\n  - Pull changes: `git pull origin branch_name`\n  - Rebase to update: `git pull --rebase`\n  - Create a branch: `git branch branch_name`\n  - Switch to a branch: `git checkout branch_name`\n  - Fetch all branches: `git fetch --all`\n  - Clone a repository: `git clone \u003crepository-url\u003e`\n- **Tree View:**\n  - On Windows, use `tree /F` to see a tree representation of directories and files.\n- **Python Package Management:**\n  - Install packages: `pip install -r requirements.txt`\n  - Freeze dependencies: `pip freeze \u003e requirements.txt`\n  - pipreqs How? `pip install pipreqs` , `pipreqs . --force`\n  - Show installed packages: `pip show \u003cpackage\u003e`\n\n#### **Common Python Project Structure**\n- **Project Files:**\n  - `main.py`\n  - `README.md`\n  - `.gitignore`\n  - `LICENSE`\n  - `requirements.txt`\n- **Modules and Imports:**\n  - Organize your code into modules and use `__init__.py` to make them importable.\n  - Example structure:\n    ```\n    project/\n    ├── main.py\n    ├── app/\n    │   ├── __init__.py\n    │   └── backend.py\n    ├── tests/\n    │   ├── __init__.py\n    │   └── test_backend.py\n    ├── requirements.txt\n    ├── .gitignore\n    └── README.md\n    ```\n\n#### **Starting a Project in VS Code**\n- **Project Setup:**\n  - Open a folder and navigate to your project directory: `cd \u003cproject\n\n-directory\u003e`.\n  - Clone the repository: `git clone \u003crepository-url\u003e`.\n- **Environment and Git Operations:**\n  - Create and activate the environment.\n  - Check status: `git status`.\n  - Make changes, save, and commit:\n  ```bash\n  git add .\n  git commit -m \"feat: add initial setup for Streamlit app\"\n  ```\n  - Push changes: `git push origin branch_name`.\n  - Verify changes on GitHub and ensure they align with the latest code base.\n\n---\n\n## **4. Extras 🛠️**\n\n- **VS Code Extensions and GUI:** Leverage extensions for Python, GitLens, Docker, and Streamlit to enhance your coding experience.\n- **Automate Requirements Management:** Use pipreqs or pip-tools for generating and managing `requirements.txt` files.\n- **Working with Forks:** Understand forking on GitHub, managing upstream changes, and contributing back with pull requests.\n- **Ubuntu and WSL:** Utilize Ubuntu or Windows Subsystem for Linux (WSL) for a Linux-like development environment on Windows, enhancing command-line operations and development workflows.\n\n---\n\n## **5. Additional Reference 📚**\n\n- **Git Commands and Workflows:** Learn more about Git commands and workflows from the [official Git documentation](https://git-scm.com/doc).\n- **VS Code Tips:** Explore VS Code tips and tricks to boost your productivity from the [VS Code documentation](https://code.visualstudio.com/docs).\n- **Python Virtual Environments:** Understand virtual environments and package management from the [Python documentation](https://docs.python.org/3/tutorial/venv.html).\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffahmizainal17%2Fgit_notes_project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffahmizainal17%2Fgit_notes_project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffahmizainal17%2Fgit_notes_project/lists"}