{"id":29603502,"url":"https://github.com/shinbatsu/git-tips","last_synced_at":"2026-01-20T16:29:54.743Z","repository":{"id":186413956,"uuid":"432717726","full_name":"Shinbatsu/git-tips","owner":"Shinbatsu","description":"Some useful info about working with git","archived":false,"fork":false,"pushed_at":"2025-07-19T15:33:57.000Z","size":183,"stargazers_count":13,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-02T10:12:27.022Z","etag":null,"topics":["basics","git","guide","tips-and-tricks"],"latest_commit_sha":null,"homepage":"https://git-scm.com","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Shinbatsu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2021-11-28T13:18:39.000Z","updated_at":"2025-07-31T15:49:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"7c26ed8f-45e6-4b1c-a133-1d3dfc94778d","html_url":"https://github.com/Shinbatsu/git-tips","commit_stats":null,"previous_names":["shinbatsu/git-basic","shinbatsu/git-tips"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Shinbatsu/git-tips","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shinbatsu%2Fgit-tips","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shinbatsu%2Fgit-tips/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shinbatsu%2Fgit-tips/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shinbatsu%2Fgit-tips/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Shinbatsu","download_url":"https://codeload.github.com/Shinbatsu/git-tips/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shinbatsu%2Fgit-tips/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28607159,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T16:10:39.856Z","status":"ssl_error","status_checked_at":"2026-01-20T16:10:39.493Z","response_time":117,"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":["basics","git","guide","tips-and-tricks"],"created_at":"2025-07-20T14:37:35.206Z","updated_at":"2026-01-20T16:29:54.725Z","avatar_url":"https://github.com/Shinbatsu.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# Useful Git Stuff\n\n![Preview](./assets/preview.png)\n\nA compact guide to mastering Git through essential commands, common pitfalls, time-saving shortcuts, expert tips, workflow patterns, and interview preparation.\n\n1. [Most Used Commands](#most-used-commands)\n2. [Popular Issues](#common-issues-and-fixes)\n3. [Well Known Hotkeys](#essential-hotkeys)\n4. [Some Tips and Tricks](#tips-and-tricks)\n5. [Interview Questions](#interview-questions)\n6. [Trunc Based Guide FSM](#trunk-based-workflow-fsm-guide)\n7. [Commit Convention](#commit-convention)\n\n\u003e [!NOTE]\n\u003e It's really that simple — it covers everything you need to know about Git!\n\n## Most Used Commands\n\nThese Git commands follow the typical development workflow—from starting a project to sharing changes. Learning them covers most daily Git usage and boosts your productivity. Ordered by typical workflow.\n\n### 1. `git init`  \nInitializes a new Git repo in the current directory.\n\n```bash\ngit init\n```\n\n### 2. `git clone`  \nCopies an existing remote repo to your local machine.\n\n```bash\ngit clone \u003crepo-url\u003e\n```\n\n### 3. `git status`  \nShows the current state of your workdir.\n\n```bash\ngit status\n```\n\n### 4. `git add`  \nStages changes, telling Git which files to include in the next commit.\n\n```bash\ngit add \u003cfile\u003e   # Add a specific file  \ngit add .        # Add all changes\ngit add -A       # Add all changes, including deletions\n```\n\n### 5. `git diff`  \nShows the difference files.\n\n```bash\ngit diff            # Compare working directory to staging  \ngit diff --staged   # Compare staging to last commit\ngit diff \u003cfile\u003e     # Compare files\n```\n\n### 6. `git commit`  \nCreates a snapshot of the staged changes with a descriptive message. \n\n```bash\ngit commit -m \"Commit Header\" -m \"Commit body\"\n```\n\n### 7. `git log`  \nDisplays the history of commits in the current branch.  \n\n```bash\ngit log\n```\n\n### 8. `git branch`  \nLists, creates, or deletes local branches. \n\n```bash\ngit branch -a           # List branches  \ngit branch \u003cname\u003e       # Create a new branch  \ngit branch -d \u003cname\u003e    # Delete a branch\n```\n\n### 9. `git checkout`  \nSwitches to another branch or restores file changes.\n\n```bash\ngit checkout \u003cbranch\u003e       # Switch to a branch(creates if not exists)\ngit checkout -b \u003cname\u003e      # Create and switch to a new branch  \ngit checkout -- \u003cfile\u003e      # Discard local changes\n```\n\n### 10. `git merge`  \nMerge selected branch(its files) into current(`git branch`).\n\n```bash\ngit merge \u003cbranch\u003e\n```\n\n### 11. `git pull`  \nFetches the latest changes from the remote and merges them into current branch.\n\n```bash\ngit pull\n```\n\n### 12. `git push`  \nSends local branch changes to the remote repo.\n\n```bash\ngit push origin \u003cbranch\u003e\n```\n\n## Common Issues and Fixes\nMistakes happens, so this section covers common problems and best solutions for each case.\n\n### 1. Wrong User Name or Email\n**Issue:** Commits are showing the wrong author name/email.\n\n```bash\ngit config --global user.name \"Your Name\"\ngit config --global user.email \"you@example.com\"\n```\n\nIf it's a local repo-specific setting:\n```bash\ngit config user.name \"Your Name\"\ngit config user.email \"you@example.com\"\n```\n\n### 2. Forgot to Add some Files into Commit\n**Issue:** Commit created, but some changes weren’t added.\n\n```bash\ngit add . # add more changes\ngit commit --amend --no-edit\n```\n\n### 3. Committed to the Wrong Branch\n**Issue:** You made changes on `main` instead of a feature branch.\n\n```bash\ngit checkout -b feature-branch\n# or if the branch already exists\n# git checkout feature-branch\ngit cherry-pick \u003ccommit_hash\u003e\n```\n\n### 4. Merge Conflicts\n**Issue:** Conflicts when merging branches.\n\nGit will highlight conflicts in the files. Manually edit them(Some IDEs may help a lot), then:\n\n```bash\ngit add \u003cresolved-files\u003e\ngit commit\n```\n\nUse tools like `git mergetool` for assistance.\n\n### 5. Accidentally Deleted a File\n**Issue:** Deleted a file you didn’t mean to.\n\n```bash\ngit checkout HEAD -- \u003cfile\u003e\n```\n\n### 6. Overwritten Local Changes with Pull\n**Issue:** You pulled changes and lost your uncommitted local changes.\n\nIf not staged:\n```bash\ngit fsck --lost-found\n```\n\nFor safety, stash changes before pulling:\n```bash\ngit stash\n```\n\n### 7. Large File Accidentally Committed\n**Issue:** Accidentally added a large file to Git history.\n\nUse `BFG Repo-Cleaner` or `git filter-branch`.\n\n\n### 8. Need to Undo Last Commit\n**Issue:** Last commit has a mistake.\n\n```bash\ngit reset --soft HEAD~1  # Keeps changes\n```\n\nTo discard the commit and changes:\n```bash\ngit reset --hard HEAD~1\n```\n\n### 9. Forgot to Switch Branch Before Work\n**Issue:** You made changes on the wrong branch.\n\n```bash\ngit stash\ngit checkout correct-branch\ngit stash pop\n```\n### 10. Lost Commits After Rebase\n**Issue:** Commits disappeared after a rebase.\n\n```bash\ngit reflog\n# Find the commit and recover:\ngit checkout \u003ccommit\u003e\n```\n\n### 11. Differences in Line Endings (Windows vs Linux)\n**Issue:** Files keep showing as changed due to line endings.\n\nAdd `.gitattributes` with following line:\n\n```\n* text=auto\n```\n\nOr set config:\n\n```bash\ngit config --global core.autocrlf true   # Windows\ngit config --global core.autocrlf input  # Linux\n```\n\n### 12. Accidentally Stashed and Lost Work\n**Issue:** You ran `git stash` and now your changes are gone.\n\n```bash\ngit stash list\ngit stash pop stash@{0}  # or use apply to keep stash\ngit stash apply stash@{0}\n```\n\n### 13. Need to Revert a Pushed Commit\n**Issue:** A bad commit has already been pushed.\n\n```bash\ngit revert \u003ccommit_hash\u003e\n```\nCreates a new commit that undoes the bad one.\n\n### 14. Too Many Small Commits\n**Issue:** You want to combine multiple commits into one.\n\n```bash\ngit rebase -i HEAD~\u003cn\u003e # where \u003cn\u003e amount of commits\n```\n\n### 15. Push Rejected Due to Out-of-Date Branch\n**Issue:** Remote has changes you don't.\n\n```bash\ngit pull --rebase\ngit push\n```\n\n### 16. Need to Rename a Branch\n**Issue:** The branch name is incorrect.\n\n```bash\ngit branch -m new-name\ngit push origin :old-name new-name\n```\n\n### 17. Working on Wrong Base Branch\n**Issue:** Your feature branch was created from the wrong base.\n\n```bash\ngit rebase --onto correct-base wrong-base feature-branch\n```\n\n### 18. Deleted a Branch by Mistake\n**Issue:** You deleted a local or remote branch accidentally.\n\n**Fix (local):**\n\n```bash\ngit reflog\n# Find the branch commit and recreate\n```\n\n**Fix (remote):**\nAsk a teammate to push it again if needed.\n\n### 19. Want to See File History\n**Issue:** You want to track the changes made to a specific file.\n\n```bash\ngit log -- \u003cfile\u003e\ngit blame \u003cfile\u003e\n```\n\n### 20. Detached HEAD State\n**Issue:** You checked out a commit, not a branch.\n\n```bash\ngit checkout -b new-branch  # To save your state\n```\nOr just checkout a branch to exit:\n```bash\ngit checkout main\n```\n\n### 21. Files Are Committed, but Changes Don’t Appear After Pull\n**Issue:** You committed files (e.g., configs or logs), but after pulling, changes don’t sync properly—likely because Git is tracking the file but ignoring internal changes.\n\n**Cause:** The file was added before updating `.gitignore`, or line endings / file permissions confuse Git on some systems. Sometimes it may be useful if you want track the file but not its changes(lines).\n\n- To force Git to track changes again:\n\n```bash\ngit rm --cached \u003cfile\u003e\ngit add \u003cfile\u003e\ngit commit -m \"Re-track file changes\"\n```\n- Double-check `.gitattributes` and `.gitignore` to ensure nothing blocks updates.\n\n## Essential Hotkeys\nHere is a list of my shorcuts that i've using each day. It will improve your speed a lot but require some words to memorize.\n\nThis repo contains a file named `gc`. Add this into your PATH.\nYou can do this manyally or using gc_install.sh that must be executed via git bash terminal.\n\n```shell\ngc\nUsage: gc [option]\n\nMandatory arguments:\n\n --setup -s          --\u003e git setup and configuration\n --init -i           --\u003e creation of new project\n --add -a            --\u003e adding files to git\n --delete -d         --\u003e deleting files from git\n --commit -c         --\u003e git commit helper\n --branch -b         --\u003e git branching info\n --merge -m          --\u003e git merging info\n --rebase -rb        --\u003e git rebase info\n --update -u         --\u003e updating current repo\n --stash -st         --\u003e stashing in current repo\n --inspect -in       --\u003e git inspection, log,show...\n --remote -r         --\u003e git remote helper\n --patch -p          --\u003e git patching helper\n --debug -dg         --\u003e git debugging\n --email -e          --\u003e git email helper\n --tags -t           --\u003e git tags helper\n --reset -rs         --\u003e git reset helper\n --conflict -cn      --\u003e git conflict resolving helper\n --revert -rv        --\u003e git reverting helper\n --fix-mistakes -f   --\u003e fix mistakes in git\n --submodules -sm    --\u003e git submodules helper\n --archive -ar       --\u003e archive your repo\n\n --help -h ?         --\u003e prints usage of git-cheat\n --version -v        --\u003e prints version of git-cheat\n```\n\n\n## Tips and Tricks\nHandy tricks to make you look like a seasoned Git expert—alias setups, stash magic, rebase powers, and much more.\n\n* **Use Hooks for Automation**  \nUse `.git/hooks/pre-commit` to auto-lint, format, or reject bad commits.  \n```bash  \n#!/bin/sh  \nblack .  \n```  \n \n* **Compare Any Two Commits (Not Just HEAD)**\n\n```bash  \ngit diff \u003ccommit1\u003e \u003ccommit2\u003e  \n```  \n \n* **Show Pretty Commit History**\n```bash  \ngit log --graph --oneline --decorate --all  \n```  \nGreat for reviewing merges and diverging branches.  \n\n* **Prune Deleted Remotes**\n\n```bash  \ngit remote prune origin  \n```  \nCleans up remote-tracking branches that no longer exist.  \n \n* **Ignore Local Changes Without .gitignore**\n\n```bash  \ngit update-index --assume-unchanged path/to/file  \n```  \nKeeps file tracked but ignores local changes.  \n\n* **Temporarily Keep Changes Without Committing**  \n```bash  \ngit stash push -m \"partial work\" path/to/file  \n```  \nExperienced users stash selectively—not everything at once.  \n \n* **Clean All Untracked Files Including Ignored** \n```bash  \ngit clean -xfd  \n```  \n\n## Interview Questions\nA categorized collection of real Git interview questions, sorted by experience level. Most are from actual interviews.\n\n### 🟢 Beginner Level\n\n#### 1. What is a Version Control System (VCS)?\nA VCS tracks changes made by developers, maintaining code history, enabling bug fixes, new code additions, and easy restoration of previous working versions.\n\n#### 2. What does `git status` do?\nShows the difference between the working directory and the index (staging area), helping track changes that are staged or unstaged.\n\n#### 3. What does `git add` do?\nAdds files or changes to the staging area (index) for the next commit. You can add all changes (`git add .`), specific files (`git add \u003cfile\u003e`), or folders (`git add \u003cfolder\u003e/`).\n\n#### 4. What is the \"Index\" or \"Staging Area\"?\nA temporary area where changes are formatted and reviewed before committing.\n\n#### 5. How to create a Git repository?\nRun `git init` in a project folder to create a `.git` directory and initialize the repository.\n\n#### 6. What is the difference between `git remote` and `git clone`?\n- `git remote`: Adds a named remote URL to an existing repository.\n- `git clone`: Creates a new local repository by copying an existing remote one.\n\n#### 7. What does `git stash` do?\nTemporarily saves changes in the working directory to a stack, allowing branch switching without losing edits.\n\n#### 8. How to delete a Git branch?\n- Locally: `git branch -d \u003cbranch_name\u003e`\n- Remotely: `git push origin --delete \u003cbranch_name\u003e`\n\n---\n\n### 🟠 Intermediate Level\n\n#### 1. What is the `git reflog` command?\nTracks all changes in branch references (like commits, checkouts), helping recover lost branches or commits.\n\n#### 2. What does a commit object contain?\n- Snapshot of project files at a point in time.\n- Reference to parent commit(s).\n- Unique SHA-1 hash identifier.\n\n####  3. What are Git config levels?\n- **System**: Applies to all users on the system (`--system`).\n- **Global**: Applies to the current user (`--global`).\n- **Local**: Applies to the current repository (`--local`, default).\n\n#### 4. What is a detached HEAD?\nWhen HEAD points to a commit or tag instead of a branch, causing \"floating\" commits not linked to any branch. Avoid by creating a new branch from that commit (`git checkout -b \u003cbranch\u003e`).\n\n#### 5. What does `git annotate` do?\nShows line-by-line commit info for a file, indicating which commit introduced each line.\n\n#### 6. Difference between `git stash apply` and `git stash pop`?\n- `apply`: Applies stash but keeps it in the stash list.\n- `pop`: Applies stash and removes it from the stash list.\n\n#### 7. Difference between `git diff` and `git status`?\n- `git diff`: Shows specific content changes between commits or working directory and index.\n- `git status`: Shows which files are staged, unstaged, or untracked.\n\n#### 8. Difference between `git pull` and `git fetch`?\n- `git fetch`: Downloads changes but doesn’t merge.\n- `git pull`: Fetches and merges changes (`git fetch + git merge`).\n\n#### 9. Why is Git easy to work with?\n- Powerful branching and merging.\n- Distributed system with local and remote repos.\n- Pull requests enable collaboration.\n- Speeds up release cycles.\n\n---\n\n### 🟣 Advanced Level\n\n#### 1. How to squash multiple commits into one?\nRun `git rebase -i HEAD~N` to combine the last N commits into a single commit. Use carefully as it rewrites history.\n\n#### 2. How to recover a deleted branch that was pushed remotely?\nUse `git reflog` to find the last commit of the branch and recreate it by checking out that commit as a new branch.\n\n#### 3. How to resolve Git conflicts?\n- Identify conflicted files.\n- Manually edit to resolve conflicts.\n- Stage resolved files (`git add`).\n- Commit the merge (`git commit`).\n- Push changes.\n\n#### 4. What command lists branches merged to master?\n`git branch --merged` shows branches merged into the current branch. `--no-merged` shows unmerged branches.\n\n#### 5. Best practice: amend a commit or create a new one?\nPrefer creating a new commit to avoid losing history or mixing unrelated changes.\n\n#### 6. How to revert a bad commit already pushed?\n- Fix and commit new changes.\n- Or use `git revert \u003cbad_commit\u003e` to create a new commit that undoes the bad one.\n\n#### 7. What does `git cherry-pick` do?\nApplies specific commits from one branch onto another, useful for backporting or selective changes.\n\n---\n\n\n## Trunk-Based Workflow (FSM Guide)\nA simplified Finite State Machine diagram to help you follow trunk-based development practices.\n\n```mermaid\nstateDiagram-v2\n   [*] --\u003e Main\n\n   %% --- Start feature work ---\n   Main --\u003e FeatureBranch : create feature branch\n\n   FeatureBranch --\u003e Working : modify or create files\n   Working --\u003e Staging : stage changes (git add)\n   Staging --\u003e Committing : commit changes (git commit)\n\n   Committing --\u003e Working : need more changes\n   Committing --\u003e Reviewing : ready for review or merge\n\n   %% --- Optional PR flow ---\n   Reviewing --\u003e PullRequest : create pull request\n   PullRequest --\u003e CodeReview : request review\n   CodeReview --\u003e ChangesRequested : reviewer requests changes\n   CodeReview --\u003e Approved : reviewer approves\n\n   ChangesRequested --\u003e Working : apply review feedback\n   Approved --\u003e Merging : merge branch\n\n   %% --- Direct merge path (no PR) ---\n   Reviewing --\u003e Merging : merge without pull request\n\n   %% --- Merge and CI ---\n   Merging --\u003e MergeConflict : merge conflict detected\n   MergeConflict --\u003e ConflictResolving : resolve conflicts manually\n   ConflictResolving --\u003e Working : edit and stage again\n\n   Merging --\u003e CI : run CI pipeline\n   CI --\u003e CI_Passed : CI passed\n   CI --\u003e CI_Failed : CI failed\n\n   CI_Passed --\u003e Main : return to trunk\n   CI_Failed --\u003e Working : fix code\n\n   %% --- Commit management ---\n   Committing --\u003e Amending : amend commit\n   Amending --\u003e Reviewing : continue review\n\n   Committing --\u003e Squashing : squash commits\n   Squashing --\u003e Reviewing : continue review\n\n   Committing --\u003e Reverting : revert commit\n   Reverting --\u003e Working : reapply or fix\n\n   %% --- Undo path ---\n   Working --\u003e Undoing : discard local changes\n   Undoing --\u003e Working\n\n   %% --- Cancel PR ---\n   PullRequest --\u003e CancellingPR : cancel pull request\n   CancellingPR --\u003e Main\n\n   %% --- Hotfix path ---\n   Main --\u003e HotfixBranch : create hotfix branch\n   HotfixBranch --\u003e Working\n\n   %% --- Dirty commit directly to main ---\n   Main --\u003e DirectCommit : commit directly to main\n   DirectCommit --\u003e Working\n\n   %% --- Closing loop ---\n   ConflictResolving --\u003e Staging\n   Reverting --\u003e Staging\n   Amending --\u003e Staging\n   Squashing --\u003e Staging\n   Working --\u003e Staging\n   CI_Failed --\u003e Staging\n```\n\n## Commit Convention\n\nStandardizing commit messages improves readability, traceability, and automation (e.g., changelogs, releases). This section outlines a consistent format based on commonly used conventions.\n\n### Commit Format\n\n```\n\u003ctype\u003e(\u003coptional scope\u003e): \u003cdescription\u003e\n\n\u003coptional body\u003e\n\n\u003coptional footer\u003e\n```\n\n- **Example**: `feat(auth): add JWT-based login`\n\n### Special Commit Types\n\n- **Initial Commit**:  \n  `chore: init`\n\n- **Merge Commit**:  \n  `Merge branch 'feature/login'` (Git default)\n\n- **Revert Commit**:  \n  `Revert \"feat(auth): add JWT-based login\"`\n\n---\n\n### Types\n\nUse one of the following types:\n\n Type       Description                                                          \n---------------------------------------------------------------------------------\n `feat`     New feature added to the API or UI                                   \n `fix`      Bug fix for an existing feature                                      \n `refactor` Code restructure without changing behavior                           \n `perf`     Performance-related improvements                                     \n `style`    Code style changes (formatting, spaces, etc.) with no logic impact  \n `test`     Adding or correcting tests                                           \n `docs`     Documentation-only changes                                           \n `build`    Changes affecting build tools, CI/CD, dependencies                   \n `ops`      Operations-related (deployment, infra, monitoring)                   \n `chore`    Misc tasks like `.gitignore` or non-functional changes               \n\n---\n\n\n### Scope (Optional)\n\nThe scope adds context to the change (e.g., `auth`, `db`, `ui`):\n\n- Format: `\u003ctype\u003e(\u003cscope\u003e): description`\n- Example: `fix(api): handle empty response case`\n- Don’t use issue numbers as scope names\n\n---\n\n### Breaking Changes\n\nIf a commit introduces a breaking change:\n\n- Add an **exclamation mark**:  \n  `feat(api)!: remove deprecated status endpoint`\n\n- In the **footer**, start with:  \n  `BREAKING CHANGE: explain what broke and how to migrate`\n\n---\n\n### Description Rules\n\n- Always required  \n- Use **imperative mood**, e.g., “add login”, not “added” or “adds”  \n- Start with lowercase  \n- **No period** at the end  \n\n---\n\n### Body (Optional)\n\nUse the body to explain **why** the change was made and how it differs from prior behavior.\n\n---\n\n### Footer (Optional, but Required for Breaking Changes)\n\nIncludes:\n\n- Issue references (e.g., `Closes #42`)  \n- Details on breaking changes  \n  Example:  \n  ```\n  BREAKING CHANGE: auth service now requires email verification\n  ```\n\n---\n\n### Versioning Guide\n\nUsed for automating version bumps (e.g., semantic-release):\n\n- **Breaking changes** → major version  \n- `feat`, `fix` commits → minor version  \n- Other changes → patch version\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshinbatsu%2Fgit-tips","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshinbatsu%2Fgit-tips","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshinbatsu%2Fgit-tips/lists"}