This will be a collection of GitHub specific, Git and how to layout your project's Repository.
TL;DR
I have put my real quick overview of accounts plans and who should use what here.
- Public repositories
- Host open source projects in public GitHub repositories, accessible via web or command line.
- Public repositories are accessible to anyone at GitHub.com.
- Collaborators and members for public repositories are always unlimited irrespective of your personal plan (e.g. free, Pro) or your organization's plan (e.g. Free, teams, Enterprise)
- Private repositories
- Host code in private GitHub repositories, accessible via appliance, web, and command line.
- Private repositories are only accessible to you and people you share them with.
- Collaborators and members for private repositories:
- On a GitHub personal account (Free, Pro), collaborators and members are unlimited.
- On a GitHub Free Organization, collaborators and members are unlimited.
- Although collaborators and organization members serve different purposes within GitHub, for organizations subscribed to GitHub Team collaborators must occupy a paid seat in order to access private repositories. Organization members always require a paid seat.
- If you decide to upgrade your organization from GitHub Free to GitHub Team, you must add a paid seat for each organization member as well as each collaborator for them to keep access.
- No data will be lost, just access for those who do not have a seat.
- You only need to buy seats for those users that you want to have access to the organizations repositories going forward, not for everybody who has every made a change or contribution to any of the organization's repositories.
- Upgrading your account's plan - GitHub Docs - If you'd like additional users to have access to your GitHub Team organization's private repositories, you can purchase more seats anytime.
- Pricing Plans
- All pricing @ GitHub is done on a per-user basis.
- Personal accounts and organization seats are classed as separate Billing entities.
- If you upgrade your personal account from GitHub Free to the GitHub Pro plan then you can:
- get additional features for your personal Private repositories such as Pages and Wikis
- you will also get more Git features and various Code workflow enhancements for both your Public and Private repositories.
- If you use GitHub Team for your organization you will also get enhancements for your Public and Private repositories as-well as improved organization management better granular user role control.
- User Accounts
- A user account is for one person and some times is referred to as a `Personal Account`.
A person only needs one user account. You only need one Facebook account right!
- This account can be used to host all of a user's project and also be used to login in to organizations.
- There are currently 2 pricing plans for an `personal` account, Free and Pro.
- If you are an individual developers with no commercial angle, then you should just use a personal/single account for all of your repositories.
- If you need more actions, features and that other stuff then you can upgrade your account to Pro.
- I would use my personal account where I need to fork a repo to push some fixes to someone else's code.
- A user can own more than one organization.
- Organizations
- Organizations are shared accounts where businesses and open-source projects can collaborate across many projects at once, with sophisticated security and administrative features.
- GitHub Free allows you to add as many members and collaborators to your organization as you’d like at no charge.
- There are currently 3 pricing plans for an account, Free, Team and Enterprise.
- Having an organization for your company ensures that the assets are not controlled by single member of staff under their personal account.
You should use an organization for your code if:
- If you are a company and you are making software.
- If you are a individual developer or a company that is going to sell software.
- You will need to collaborate with team members or other entities.
- Your software project(s) will be large.
- Features:
- Allow for collaboration between team members and other entities.
- Allows more granular permissions for repositories that belong to the organization.
- An organisation can have public and private members. Public members do not count towards your organizations seats.
- Allow for for organising repositories by groups such as; Company, Code Language, Software Type, etc.....
- You can convert your personal account into an organization (but this is not best practice).
- You can identify an organization easily because thy have a people tab.
- Organizations can have more than one organization owner to avoid lapses in ownership.
- Teams
- The concept of Teams in GitHub allows for greater flexibility for collaboration and integration, as well as separation of repositories and permissions.
- Enterprise accounts
- Are for very large companies, or those teams that need to manage multiple organisations but all under the same company banner.
- Pricing is done per member, each member requires a seat/license, I am assuming there will always be at leats one member.
- Discounts
GitHub Official Sites
- GitHub - Join the world's most widely adopted, AI-powered developer platform where millions of developers, businesses, and the largest open source community build software that advances humanity.
- Marketplace · Tools to improve your workflow | GitHub - Find the tools that help your team build better, together.
- GitHub Skills | GitHub - Learn how to use GitHub with interactive courses designed for beginners and experts.
- GitHub Resources | GitHub - From setup to optimization, learn how to use GitHub to get the job done.
- Choose a License - Non-judgmental guidance on choosing a license for your open source project
- GitHub - YouTube - Official YouTube channel
- GitHub Sponsors · GitHub - Invest in the open source projects you depend on with GitHub Sponsors.
- Software Support and Product Help - GitHub Support - Access your support options and sign in to your account for GitHub software support and product assistance. Get the help you need from our dedicated support team.
- The GitHub Blog - Updates, ideas, and inspiration from GitHub to help developers build and design software.
- GitHub Gists | GitHub - Instantly share code, notes, and snippets.
- GitHub Classroom | GitHub - GitHub Classroom automates repository creation and access control, making it easy for teachers to distribute starter code and collect assignments on GitHub.
- GitHub - github/dev | GitHub
- Press the . key on any repo. Contribute to github/dev development by creating an account on GitHub.
- The github.dev web-based editor is a lightweight editing experience that runs entirely in your browser. You can navigate files and source code repositories from GitHub, and make and commit code changes.
- Press the . key on any repository or pull request.
- Swap
.com with .dev in the URL. For example, this repo https://github.com/github/dev becomes http://github.dev/github/dev
- It’s a quick way to edit and navigate code. It's especially useful if you want to edit multiple files at a time or take advantage of all the powerful code editing features of Visual Studio Code when making a quick change. For more information, see our documentation.
- GitHub Docs - Get started, troubleshoot, and make the most of GitHub. Documentation for new users, developers, administrators, and all of GitHub's products.
- GitHub Learn
- GitHub Learn is the all-in-one learning experience platform that unifies GitHub’s official learning and enablement resources into personalized journeys.
- Whether you're pursuing certification or want to learn about one of our new features, GitHub Learn helps you set goals, track progress, and build the skills that matter — all from one trusted source.
- GitHub Skills · GitHub - Learn how to use GitHub with interactive courses designed for beginners and experts. - GitHub Skills
- GitHub - skills/introduction-to-github - Get started using GitHub in less than an hour.
- GitHub Community · GitHub - Ask questions, get answers, share expertise.
- GitHub Training Kit - GitHub Cheatsheets - Github Git Cheat Sheets Training Kit
- Expert Services | GitHub · GitHub - From idea to implementation, our experts are ready to help your team get wherever you want to go. Start a conversation with us about how we can bring your goals to life.
- GitHub School · GitHub - A repo used for training.
- Schools - GitHub Education · GitHub - Teach with industry-standard tools. Get free access with training for students and faculty.
- GitHub Classroom - GitHub Classroom automates repository creation and access control, making it easy for teachers to distribute starter code and collect assignments on GitHub.
- GitHub Status - Welcome to GitHub's home for real-time and historical data on system performance.
- GitHub Status - Incident History - GitHub's Incident and Scheduled Maintenance History.
- Contact - Software Support and Product Help - GitHub Support - Access your support options and sign in to your account for GitHub software support and product assistance. Get the help you need from our dedicated support team
- The GitHub Training Team · GitHub - Teaching the world how to effectively use the GitHub collaboration platform - The GitHub Training Team
- GitHub Training Manual - The Official GitHub Training Manual
- GitHub Next - GitHub Next investigates the future of software development
- GitHub Support
- GitHub software support and product assistance. Get the help you need from our dedicated support team.
- A lot of topics are available to personal accounts, some might redirect to the `Virtual Assistant` or GitHub Community discussions.
- Contacting GitHub Support - GitHub Docs - You can use the GitHub Support portal to contact GitHub Support for help troubleshooting issues you encounter while using GitHub.
- Creating a support ticket - GitHub Docs
- If your account uses a paid GitHub plan, Copilot Business, or Copilot Enterprise, you can directly contact GitHub Support.
- If your account uses GitHub Free, you can speak to GitHub users and staff on the GitHub Community discussions for most issues, and you can contact GitHub Support to report account, security, and abuse issues.
Markdown Cheatsheets
Misc Sites
Software for GitHub
Using GitHub
Tutorials
- GitHub Foundations Course - YouTube | ExamPro
- Master the essentials of GitHub with this comprehensive GitHub Foundations Course.
- Whether you're new to version control or want to enhance your GitHub skills, this playlist covers everything from repository creation, issues management, GitHub Flow, and working with pull requests to leveraging advanced features like GitHub Projects and Discussions.
- Follow along with hands-on examples to gain practical experience. Perfect for developers, DevOps professionals, and anyone looking to improve their GitHub proficiency.
- Filtering and searching issues and pull requests - GitHub Docs - To find detailed information about a repository on GitHub, you can filter, sort, and search issues and pull requests that are relevant to the repository.
- Searching issues and pull requests - GitHub Docs - You can search for issues and pull requests on GitHub and narrow the results using these search qualifiers in any combination.
- How to maintain two repositories internal/private and one open-source · GitHub | igorcosta - Managing multiple repositories that serve distinct but interconnected purposes can be a challenging task. This scenario is common when an organization wishes to contribute to an open-source project while also maintaining an internal space for private collaboration.
- Showing an overview of your activity on your profile - GitHub Docs - You can enable the activity overview section on your profile to give viewers more context about the types of contributions you make.
- Viewing contributions on your profile - GitHub Docs - Your profile shows off your pinned repositories, Achievements, and a graph of your repository contributions over the past year.
View Forks
Repository --> Insights --> Forks
- Filters:
- By default the list will only show forks with activity within the last 2 years, so make sure you set the filters accordingly.
- There are many filters.
- The filter
Repository Type = Network (Forks of other forks) can be quite useful.
- Switch to tree view: This is useful as it lets you see more repositories on the page at the same time. I think this is how it use to look on GitHub.
Pull Requests
The idea behind git is that there are many independent copies of repositories that occasionally communicate. This makes it easy for people to independently work out changes, then work together to synchronize things. Pull requests are one of those mechanisms allowing that.
A pull request `is not a feature of git` but a workflow. Services like GitHub can automate the Pull Request workflow.
Tutorials
What these videos before doing your first PR as they will explain everything.
- GitHub Pull Request: How to contribute to Open Source. - YouTube | 7urtle JavaScript
- How to contribute to open-source projects using GitHub pull requests.
- Starts with a simple diagram, easy to follow and does actually explain how to do a PR.
- This method does not use branches
- How to make a pull request on an open source project - YouTube | Web dev Cody
- I'm just walking you through how you could use git to fork an upstream branch, make a new branch, add changes to your git stage, commit your changes, and then push those changes to your branch, make a pull request (PR) to the upstream github repo, and then also how to update your master branch to match the upstream branch by using git fetch and
git reset --hard.
- This is more indepth and uses branches for his PRs.
- GitHub Pull Requests Explained for Beginners - GitHub Foundations - YouTube | ExamPro
- Learn how GitHub Pull Requests work and why they are an important part of collaboration, code review, and project workflows.
- In this GitHub Foundations lesson, we explain how pull requests help you propose changes, review code, discuss updates, compare branches, and merge work safely into a repository.
- A pull request `is not a feature of git` but a workflow. Services like GitHub can automate the Pull Request workflow.
- This is not for beginners, but does gove a good overview pnce you have the basics.
How to do a Pull Request (PR) so you can submit your code fixes to another project on GitHub.
- Fork the target Project
- This is done on Github via the
Fork button at the top right of the repositories homepage.
- Create a Local Repo
- Using your IDE (VSCode/Netbeans/etc...) create a local repo of the forked repo
- Create a new branch
- The branch name should be related to the code/fix you aare going to submit (e.g. fixing-colour-scheme)
- Switch to the new branch
- This might sound obvious, but just in-case here is a little reminder.
- Make your Changes
- Fix and test your code as you normally would.
- Commit the Changes
- Commit the changes, making sure you are coming to your new branch and not the master.
- The commit message should contain the numbers of the issues you are fixing.
- You can do as many commits as needed, this is especially useful if you are fixing multiple issues.
- Push Commits
- Push the changes to your fork on GitHub
- Create a Pull Request (PR)
- Goto to your fork's homepage on GitHub
- You should now see a button called
Compare & pull request MIGHT say COMBINE, cehck this as based on a old video
- Set the PR merger parametes
- base repository: the target repo
- base: master or main
- head repository: your fork
- compare: your brach with the code chagnes
- Fill in a title for the PR (AI might prefill for you)
- Fill in a description.
- Click
Create pull request
- The Project now processes you PR
- If the project accepts your PC, it will merge it with their code.
- A project can refuse or send your code back for further revisions, but this is out of scope for this tutorial.
- Delete the Fork's branch you used for the PR
- Now the branch has done its job it should be deleted to keep things tidy.
- You don't need to delete your branch, but you might want to so that you're not confused. It's not a problem if you don't delete it.
- Delete the Fork and your Local Repo (optional)
- I would consider if you really need to do this, but I have included it here for completeness.
- If you're likely to make further contributions, I wouldn't delete the forked repo. When you want to make a further change, you should synchronize your copy so it's updated to mine, then make another branch.
Notes
- You do not have to create a local repo to make changes
- You can create the branch on GitHub.
- Edit the raw files via GitHub or use github.dev by clicking the period button (
.) on the homepage of your fork.
- Save and commit your changes on GitHub.
- You do not have to create a new branch, but you should
- The benefits of creating a branch on your fork is as follows:
- It allows you to resync your fork's master branch with the project's master branch without affecting your code, which is good if the project gets an update and prevents code loss in your fork.
- Keeps your code separate.
- Easier to submit the changes to the project.
- You can work on multiple issues separately which is useful for teams.
- It allows you to keep the fork of the project in your account for re-use later, perhaps you might want to make more contributions in the future.
- Not using a branch, but just your fork's master branch is probably only useful for quick submissions and where you are likely to delete the fork afterwards.
- A Pull Request can have many commits. The PR message and the commit messages are different.
- Put issue closing or reference (e.g.
ref #114 or closes #114) short codes in the PR description. You can put these in the commits that form the PR but I am not sure if they get parsed.
GitHub Structure
Account Plans / Pricing
- Pricing
- Pricing · Plans for every developer · GitHub - Whether you're starting an open source project or choosing new tools for your team, we’ve got you covered.
- GitHub’s plans - GitHub Docs - An overview of GitHub's pricing plans.
- GitHub offers free and paid plans for storing and collaborating on code. Some plans are available only to personal accounts, while other plans are available only to organization and enterprise accounts.
- The plans
- GitHub Made All Its Core Features Free For Everyone - Here‘s Why You Should Care - ExpertBeacon - For years, some of GitHub’s most helpful features required users to upgrade from the free tier to a paid subscription ranging from $4 to $21 per user/month. However, GitHub recently announced that all of its core features are now included for free for all users.. In this post, I’ll summarize what changed, analyze why GitHub likely made this move, and explain why it matters so much for developers.
- Q&A from GitHub Sales Deelopment Representative
- Do I pay per user in the organization?
- Yes. All GitHub plans (Team or Enterprise) are billed per user, regardless of how many repositories they access.
- Do I have to pay a fee for the organization and then per user?
- No. There is no separate base fee. You only pay per active user in the organization. One user = one seat.
- Is a paid user in GitHub like a seat I can assign to any user I want?
- Yes. Each paid seat is tied to an individual GitHub account in your organization. You can invite/remove users, and the billing updates accordingly.
- What happens if I have more users than seats?
- You will automatically be billed for any additional users beyond your current seat count. GitHub tracks active users monthly for billing purposes.
- Are limitations applied to the users or the organization?
- It depends:
- Features like SSO, audit logs, and role-based access are tied to the organization’s plan (e.g., Team or Enterprise).
- Billing is per user.
- Storage limits, repository insights, and access controls also depend on the organization plan, not the user’s individual plan.
- If I have a Pro personal account, do my features carry over into the organization?
- No. Features from a personal Pro account apply only to your personal account and repositories, not to the organization. The organization will need its own paid plan (Team or Enterprise) to unlock advanced features.
- Do you have anymore information
- For a breakdown of GitHub’s per-user pricing model, this page is a helpful reference: About per-user pricing
- And to compare GitHub Free, Team, and Enterprise features, you can use this overview: GitHub Plans Comparison (scroll down).
- Upgrading / Downgrading Account Plan
- Downgrading your account's plan - GitHub Docs
- You can downgrade the plan for any type of account on GitHub at any time.
- After an organization's plan is downgraded, the organization will lose access to any functionality that is not included in the new plan. If an advanced feature, such as GitHub Pages, is not available for private repositories in your new plan, consider whether you'd like to retain access to the feature by making affected repositories public.
- Removing paid seats from your organization: To reduce the number of paid seats your organization uses, you can remove members from your organization or convert members to outside collaborators and give them access to only public repositories.
- Upgrading your account's plan - GitHub Docs
- You can upgrade the plan for any type of account on GitHub at any time.
- About upgrades
- Each account on GitHub is billed separately.
- Upgrading an organization account enables paid features for the organization's repositories only and does not affect the features available in repositories owned by any associated personal accounts.
- Similarly, upgrading a personal account enables paid features for the personal account's repositories only and does not affect the repositories of any organization accounts.
- Upgrading your personal account's plan
- You can upgrade your personal account from GitHub Free to GitHub Pro to get advanced code review tools on private repositories owned by your personal account.
- Upgrading your personal account does not affect any organizations you may manage or repositories owned by those organizations.
- Managing your organization's plan
- You can upgrade your organization's plan, add seats to your existing plan, or switch from per-repository to per-user pricing.
- Upgrading an organization does not affect your personal account or repositories owned by your personal account.
- If your organization is using a legacy per-repository billing plan, you can switch to per-user pricing at any time. You will not be able to switch back to repository pricing once you've upgraded to per-user pricing.
- If you'd like additional users to have access to your GitHub Team organization's private repositories, you can purchase more seats anytime.
- Organizations
- Github team users vs collaborators pricing. · community · Discussion #22012 · GitHub
- GitHub Free allows you to add as many members and collaborators to your organization as you’d like at no charge.
- If you decide to upgrade to GitHub Team, however, you must add a paid seat for each organization member as well as each collaborator. In your example, upgrading an 10-user organization from GitHub Free to GitHub Team would require 10 paid seats at $4 per month each, for a total charge of $40 per month.
- Although collaborators and organization members serve different purposes within GitHub, for organizations subscribed to GitHub Team collaborators must occupy a paid seat in order to access private repositories. Organization members always require a paid seat.
- If you have an existing subscription to GitHub Team with 10 users, then add another seat during the billing cycle, you’ll be charged a prorated amount of $4 to cover the period between when you added the seat and when the subscription typically renews.
- About per-user pricing - GitHub Docs - Learn about per-user pricing for organizations.
- People that consume a license:
- Organization members, including owners
- Outside collaborators on private repositories owned by your organization, excluding forks
- Anyone with a pending invitation to become an outside collaborator on private or internal repositories owned by your organization, excluding forks
- Dormant users
- GitHub Pro
- GitHub Pro feature comparison is hidden
- You would expect these details to be available on the pricing page , but they are not. To find out the difference between
GitHub Free and GitHub Pro follow the instructions below:
- Login --> Profile --> Settings --> Billings and plans --> Plans and usage --> Upgrade
- You can now see a side by side comparison on the 2 account plans.
- Upgrading your account's plan - GitHub Docs
- You can upgrade your personal account from GitHub Free to GitHub Pro to get advanced code review tools on private repositories owned by your personal account.
- Upgrading your personal account does not affect any organizations you may manage or repositories owned by those organizations.
- This has detailed instructions on upgrading to Pro
- Pricing on the home page is for organizations.
- Pro and a single Team user is $4 (which cannot be a coincidence)
- Is Github Pro free for students? · community · Discussion #158175 · GitHub - Yes, eligible students can get GitHub Pro for free through the GitHub Student Developer Pack.
- What happens to my repositories once the Pro membership expires? · community · Discussion #129354 · GitHub
- When a GitHub Pro subscription expires, the account transitions back to the free tier.
- This change primarily impacts features and limits but does not affect the availability or integrity of the repositories.
- Public repositories remain public and fully accessible, ensuring continued visibility and collaboration.
- Private repositories created during the Pro period retain their privacy, but the number of collaborators may be restricted to the limits of the free plan, typically capped at three.
- Advanced features exclusive to GitHub Pro, such as enhanced code review tools, repository insights, and additional CI/CD minutes and storage, become unavailable.
- Users may experience limitations if their usage exceeds the free plan’s data transfer and storage limits, potentially leading to restricted repository actions until usage is reduced or additional resources are purchased.
- Pro-specific support and advanced security features, like code scanning and secret scanning, are also discontinued.
- Despite these changes, all existing repositories remain intact and functional, ensuring no loss of data or accessibility.
- GitHub pro · community · Discussion #67993 · GitHub - Can someone please explain how the GitHub pro version works. I thought it works like having a Team organization account?
- GitHub Pro is a subscription plan for individual users on GitHub and is distinct from GitHub Team, which is designed for organizations. Here's how GitHub Pro works:
- Individual Subscription: GitHub Pro is meant for individual developers who want enhanced features and capabilities beyond what's available in the free GitHub plan. It's not associated with an organization or team account.
- Enhanced Features: GitHub Pro provides several benefits over the free GitHub account.
- In summary, GitHub Pro is a paid subscription plan for individual developers who want enhanced features and unlimited private repositories. It is not the same as a GitHub Team organization account, which is designed for collaborative work within teams or organizations and includes more extensive management and collaboration features.
GitHub Account Types
- General
- Should I create separate work and personal GitHub accounts?
- User Accounts
- Organizations
Organizations
Overview
- About organizations - GitHub Docs
- Organizations are shared accounts where businesses and open-source projects can collaborate across many projects at once, with sophisticated security and administrative features.
- Your team can collaborate on GitHub by using an organization account, which serves as a container for your shared work and gives the work a unique name and brand.
- Each person that uses GitHub always signs into a personal account, and multiple personal accounts can collaborate on shared projects by joining the same organization account.
- You can use organizations for free, with GitHub Free, which includes limited features on private repositories. To get the full feature set on private repositories and additional features at the organization level, including SAML single sign-on and improved support coverage, you can upgrade to GitHub Team or GitHub Enterprise Cloud. For more information, see GitHub’s plans.
- Enterprise accounts are a feature of GitHub Enterprise Cloud that allow owners to centrally manage policy and billing for multiple organizations.
- github organization plans | Bing Search
- GitHub organization plans are options for teams and businesses to use GitHub features and services. Organizations can use GitHub for free, with limited features on private repositories, or upgrade to GitHub Team or GitHub Enterprise Cloud for more features and support. GitHub Free for organizations includes private repositories for unlimited users, and GitHub Free for individual developers includes unlimited collaborators. To create an organization, you need to follow the prompts on the GitHub website.
- What Are GitHub Organizations, and Should You Use One? | How-To Geek
- GitHub Organizations is a feature of GitHub that allows you to create a central place where team members can access and manage repositories and other resources.
- Grouping them all under one name on a non-personal account is a great organizational tool. Repositories made under organizations will use the organization name instead of your personal account as the prefix, which can look more professional.
- Beyond that, Organizations also provide many features for teams, such as centralized user and permission management.
- Maintaining ownership continuity for your organization - GitHub Docs - Organizations can have more than one organization owner to avoid lapses in ownership.
- Limit on Write Collaborators | Github Organization (Free) · community · Discussion #140992 · GitHub
- Q:
- I want to create a Free Github Organization account, where I would have several private repositories.
- Are there any limits on the number of (free) members that can join the private repositories with write permissions? (I am mostly concerned about organization members; not external collaborators).
- I am being told that there is , but I can't seem to find anything in Github's documentation that says so...
- A:
- Great question! For a free GitHub Organization account, you can have unlimited private repositories, and there's no limit on the number of members within the organization. However, the distinction comes with permissions—free organization accounts can add as many members as they want, but those members all receive the same default permissions.
- If you're adding members to your organization, they will all get read or write permissions for private repositories depending on how you set up access. GitHub doesn’t explicitly limit the number of these organization members, but you might run into practical management issues if the group gets too large without paid features for more granular control.
Setup / Configure
Creating a new Organization
Converting an Account to an Organization
- It is best to setup a organization from scratch and convert only if needed.
- Converting a user into an organization - GitHub Docs
- You can convert your personal account into an organization. This allows more granular permissions for repositories that belong to the organization.
- An organization cannot be converted back to a user.
- Any commits made with the converted personal account will no longer be linked to that account. The commits themselves will remain intact.
- The personal account you want to convert cannot be a member of any organizations.
- How To Transform And Switch Your Account To Organization on Github - YouTube | How to Media
- Why is there an option to convert an account into an organization?
- It’s because organizations didn’t always exist.
- You aren’t supposed to create an account only to then turn it into an organization.
- How to turn a personal account into an org account · GitHub | baldwindavid
- Excellent explanation of the messages and terms when converting an account into an organization.
- This organization belongs to - Confused about converting account to organization..?? · community · Discussion #23263 · GitHub
- This organization belongs to:
- That option determines ownership of the organization with respect to our Terms of Service.
- If you select the " My personal account" option, the organization is bound to our Standard Terms of Service with you as the owner. Selecting the “A business or institution” option places the organization on our Corporate Terms of Service instead, with ownership held by an entity such as a company, non-profit, or group. Corporate Terms provide greater flexibility with regard to account ownership disputes and transfers, which can be beneficial in cases where an organization owner leaves a business or otherwise becomes unresponsive.
- Q:
- So if I select to set this up as corporate, because my company is indeed an S-Corp, would it still be showing up under /angelleye or does that get changed? That’s the part that’s confusing me, because it says the company “not angelleye” would control it.
- A:
- Convert Your Personal GitHub Account into an Organization | Step-by-Step Guide - YouTube - In this video, I’ll show you how to convert your personal GitHub account into an organization. Learn the step-by-step process, benefits, and why you might need to make this switch. Perfect for developers, teams, and project managers!
Transfer a repository to an Organization
Personal Account or Organization
Roles
- About organization membership - GitHub Docs - You can become a member of an organization to collaborate with coworkers or open-source contributors across many repositories at once.
- Roles in an organization - GitHub Docs
- Organization owners can assign roles to individuals and teams giving them different sets of permissions in the organization.
- Outside collaborator, To keep your organization's data secure while allowing access to repositories, you can add outside collaborators. An outside collaborator is a person who has access to one or more organization repositories but is not explicitly a member of the organization, such as a consultant or temporary employee.
- Repository roles for an organization - GitHub Docs - You can customize access to each repository in your organization by assigning granular roles, giving people access to the features and tasks they need.
- Converting an organization member to an outside collaborator - GitHub Docs - If a current member of your organization only needs access to certain repositories, such as consultants or temporary employees, you can convert them to an outside collaborator.
Benefits of an Organization
- Can put all of a companies repos in one place
- Can be a separate assets that can be attached to the company rather than a personal account.
- It is not a personal account. a personal account should belong to a single person and not a company.
- Permissions can be more fine grained
- Organizations can be part of an enterprise account
How can I tell if a repository belongs to an organization?
Contributors / Collaborators / Members
- What is the difference between contributor, member and collaborator? - Open Source Stack Exchange
- Contributors - When a user's set of email addresses is found in the commit history of a github repo, github marks that user as a contributor.
- Collaborators - A user that has defined permissions in a github repo is marked as a collaborator. These permissions can vary and do not need to be the commit bit.
- Members - When a github repo belongs to an organization, users that have membership in that organization are marked "Member" in the same space used for "Contributor" and "Collaborator".
- Adding outside collaborators to repositories in your organization - GitHub Docs
- You can allow people who aren't members of your organization to access repositories that your organization owns.
- An outside collaborator is a person who is not a member of your organization, but has access to one or more of your organization's repositories.
- You can choose the level of access to grant for each outside collaborator.
- Unless you are on a free plan, adding an outside collaborator to a private repository will use one of your paid licenses. For more information, see "About per-user pricing."
Public vs Private
- Setting repository visibility - GitHub Docs - You can choose who can view your repository.
- Public repositories:
- Host open source projects in public GitHub repositories, accessible via web or command line. Public repositories are accessible to anyone at GitHub.com.
- + copy to the top ???
- Private repositories:
- Host code in private GitHub repositories, accessible via appliance, web, and command line. Private repositories are only accessible to you and people you share them with.
- + copy to the top ???
How to structure your Github Organization, Repositories and Users
This section will deal with configuring GitHub for your developing and company needs.
- The hierarchy of GitHub is as follows:
- Enterprise Account --> Organization --> Repository --> Users
- Orgs and Teams Best Practices · GitHub | joshjohanning - Orgs and Teams Best Practices. GitHub Gist: instantly share code, notes, and snippets.
- The intention of this document is to provide some guidance and suggestions to customers who are wondering how they should structure organizations and teams in their GitHub Enterprise environment. The idea isn't to give hard and fast rules on which approach is better than the other, but to give examples of when one approach might be preferable to another depending on the use case.
- The concept of Teams in GitHub allows for greater flexibility for collaboration and integration, as well as separation of repositories and permissions.
- Excellent article
- How should you structure your GitHub Organizations? - YouTube
- There are a lot of different ways to structure your GitHub Organizations. One organization to rule them all, multiple organizations, even LOTS of organizations. There are some pros and cons you need to consider with any method that you choose.
- Very chilled out video
- Enterprise account --> Organizations --> Repositories
- How many Organizations do we need?
- Strategies for using organizations in GitHub Enterprise Cloud - GitHub Resources
- Within GitHub Enterprise Cloud (GHEC), organizations are shared accounts where your users collaborate across many projects at once, with sophisticated security and administrative features. It’s important to plan your structure in advance to avoid creating unnecessary silos and increase administrative overhead. A good structure will facilitate collaboration and discovery while reducing administrative overhead.
- In general, we recommend creating the fewest possible organizations within your enterprise to accommodate your business needs.
- Model 1: Single Organization
- In this model, a single organization is used for all or the vast majority of repositories. Many small- to medium-sized organizations (less than 5,000 developers) use this approach to manage their GitHub environment.
- Model 2: Red-green-sandbox-archive
- Model 3: Portfolio company
- GitHub Organization Best Practices - A concise guide on best practices for managing single vs multiple GitHub Enterprise Organizations
- Note: Distinct organizations are NOT needed to limit repository access. Repository access can be limited via base user permissions and Teams.
- Individual organizations are intended for users who work together, i.e., whole engineering teams and their cross-functional counterparts.
- When does it make sense to create more than one organization?
- Expert guide: Transfer Github to Organization step-by-step - YouTube | TechTimeFly
- This guy uses repositories to separate his code by language.
- The video is just for context
GitHub Account Management
Does setting up a SSH key and PAT allow me to use them to recover my account with my email address when locked out of my account???
Account Setup
- Password
- Use a strong password
- Store the password in a secure password manager.
- Recovery codes
- Download them
- print them out
- install them into a secure password manager
- Enable 2FA
- with as many methods as possible except maybe SMS as this not classed as secure
- Use passeys?
- Create an SSH key
- Can this be used for account recovery
- Create a Personal Access Token
- Can this be used for account recovery
- Setup your profile
- Fill in your information and make sure only what you want is shown publicaly.
Account Recovery
Read this article, it is very clear and calming.
- How to Recover Your GitHub Account
- Regain access to your GitHub account with a step-by-step guide on using 2FA codes, email verification, and support requests for account recovery.
- Best Practices to Prevent Account Lockout
- Setting Up Multiple 2FA Methods for Backup
- Downloading and Securely Storing Recovery Codes
- Ensuring Access to Verified Devices and Email Addresses
- Recovery options are as follows (not all might be available to you):
- Recovery codes.
- Previously verified device
- SSH key
- Personal access token
- Additional Emails for recovery
- This is only useful if you do not have 2FA enabled on your account.
- Profile --> Settings --> Emails --> Add email address
- https://github.com/settings/emails --> Add email address
- If you do not have more than one verified email setup you will be prompted with this message:

- Recovering your account if you lose your 2FA credentials - GitHub Docs
- If you lose access to your two-factor authentication credentials, you can use your recovery codes, or another recovery option, to regain access to your account.
- For security reasons, GitHub Support will not be able to restore access to accounts with two-factor authentication enabled if you lose your two-factor authentication credentials or lose access to your account recovery methods.
- If you cannot use any recovery methods, you have permanently lost access to your account. However, you can unlink an email address tied to the locked account. The unlinked email address can then be linked to a new or existing account. For more information, see Unlinking your email address from a locked account.
- Recovering your account if you lose your 2FA credentials - GitHub Docs
- If you lose access to your two-factor authentication credentials, you can use your recovery codes, or another recovery option, to regain access to your account.
- Follow Instructions here and will need at least one of the following alternative authentication factors:
- Previously verified device
- SSH key
- Personal access token
- A member of GitHub Support will review your request and email you within three business days. If your request is approved, you'll receive a link to complete your account recovery process. If your request is denied, the email will include a way to contact support with any additional questions.
- GitHub Account Recovery Policy - GitHub Docs
- Get started, troubleshoot, and make the most of GitHub. Documentation for new users, developers, administrators, and all of GitHub's products.
- GitHub provides a number of account recovery methods including an automated recovery process if you have lost access to your GitHub.com account. If you cannot use any of the provided recovery methods, you have permanently lost access to your account.
- For security reasons, GitHub Support will not restore access to accounts with two-factor authentication enabled if you lose your two-factor authentication credentials or lose access to your account recovery methods. You must use existing account recovery methods.
- GitHub does not support any other means of account recovery, including social or ID verification, by members of GitHub’s staff. This policy is in place to protect your account from unauthorized access through social engineering.
- How to Recover Your GitHub Account - Regain access to your GitHub account with a step-by-step guide on using 2FA codes, email verification, and support requests for account recovery.
- GitHub Account Recovery Policy - GitHub Docs - Get started, troubleshoot, and make the most of GitHub. Documentation for new users, developers, administrators, and all of GitHub's products.
- New 2FA account recovery options via password reset flow - GitHub Changelog
- Users with two-factor authentication enabled can now begin the account recovery process from the password reset flow.
- With this change, a user can recover their account as long as they can perform email verification and provide a recovery factor, such as an SSH key, PAT (Personal Access Token), or previously signed in device.
- Unlinking your email address from a locked account - GitHub Docs - If you have lost your two-factor authentication (2FA) credentials and are unable to recover access, you can remove the connection between your email address and a 2FA locked account. The email address is then available for you to link it to a new or existing account, maintaining your commit history.
Authentication
- General
- Passkeys
- Passkeys are a password replacement that validates your identity using touch, facial recognition, a device password, or a PIN.
- Passkeys can be used for sign-in as a simple and secure alternative to your password and two-factor credentials.
- About passkeys - GitHub Docs
- Passkeys allow you to sign in safely and easily, without requiring a password and two-factor authentication.
- Passkeys are webauthn credentials that validate your identity using touch, facial recognition, a device password, or a PIN. They can be used as a password replacement or as a 2FA method. Passkeys can be used for sign-in as a simple and secure alternative to your password and two-factor credentials.
- Managing your passkeys - GitHub Docs - You may be prompted to register a passkey during sign-in, or you can choose to register a new passkey in your account settings. For 2FA users, you can upgrade existing eligible security keys into passkeys.

- Personal Access Token (PAT)
- Personal access tokens were initially introduced to replace passwords for authentication to GitHub's API and command-line interface. Over time, their functionality has expanded, including their use in account recovery scenarios.
- Managing your personal access tokens - GitHub Docs - You can use a personal access token in place of a password when authenticating to GitHub in the command line or with the API.
2FA
This is covering the use of 2FA on GitHub.
- If you loose your 2FA methods and your Recovery codes then you will be locked out of your account permanently, this is to protect GitHub and users from social engineering.
- You can use any 2FA method you have configured to login which is useful if you loose access to one.
- Make sure you set up as many recovery methods as possible.
- Having multiple 2FA methods reduces the risk of users getting locked out of their accounts
- 2FA does not just mean TOTP, you can also add SMS, Github Mobile.
- SMS is not really secure, but easy to setup and can prevent lockout.
- Download and print out your Recovery codes
- General
- 2FA methods available
- Authenticator app
- Uses TOTP
- Use 2FAS as your OTP manager.
- SMS/Text message
- This is a code sent your mobile phone.
- It is better than nothing.
- Security keys
- GitHub Mobile
- Install the GitHub app and use this as an authenticator.
- Easy to use and I recommend using this.
- Official Docs
- Securing your account with two-factor authentication (2FA) - GitHub Docs - You can set up your account on GitHub to require an authentication code in addition to your password when you sign in.
- Configuring two-factor authentication recovery methods - GitHub Docs
- You can set up a variety of recovery methods to access your account if you lose your two-factor authentication credentials.
- Print your codes on paper and store securely in a password manager.
- If you enable/disable 2FA then your current codes will become invalid.
- Configuring two-factor authentication - GitHub Docs
- You can choose among multiple options to add a second source of authentication to your account.
- We strongly recommend using a time-based one-time password (TOTP) application to configure 2FA, and security keys as backup methods instead of SMS. TOTP applications are more reliable than SMS, especially for locations outside the United States. Many TOTP apps support the secure backup of your authentication codes in the cloud and can be restored if you lose access to your device.
- After you configure 2FA, your account will enter a 28-day check up period. You can leave the check up period by successfully performing 2FA in those 28 days. Otherwise, you will be prompted to perform 2FA in an existing GitHub.com session on the 28th day. If you cannot perform 2FA to pass the checkup, you must use the provided shortcut to reconfigure your 2FA settings and retain access to GitHub.com.
- Git Good at Securing your Code - How to enable 2FA on GitHub - YouTube | GitHub
- If you don't already have two-factor authentication setup, check out how to enable this feature now.
- This is an easy to follow video
- What was discovered when we enforced 2FA for millions of users - YouTube | GitHub
- GitHub product designer Hemant Kumar discusses implementing two-factor authentication (2FA) at scale, driven by empathy for our users and a commitment to software security.
- The project showcases cross-functional collaboration, user-centered design, and strategic communication, resulting in improved user experience while reducing support requests and account lockouts.
- This explains the process and what this means to a user.
- What I did
- Added 2x recovery emails
- Added a mobile phone for SMS recovery
- Added GitHub Mobile as a 2FA (installed and logged in on my phone)
- * (not done yet) Added TOTP using 2FAS (Android)
- Saved my recovery codes to my password manager (Bitwarden)
- Printed my recovery codes on paper
GitHub Services
Search
The search feature on GitHub is very powerful and is underused by a lot of people.
Pages
- This free feature allows you to run websites directly from GitHub, even with your own custom domain name. Useful for small developers who are bandwidth constrained.
- GitHub pages host only static HTML pages. No server side technology is supported, so Node.js applications won't run on GitHub pages.
- GitHub pages does support the Jekyll template system.
- TL;DR
- Settings --> Code and Automation --> Pages
- You get one main website per account https://shoulders.github.io/ and one per project https://shoulders.github.io/mysql-slow-query-log-visualizer/
- You can select a branch and then a folder. You can free type a folder name.
- The site is regenerated automatically when you commit a change via github
- The regeneration is handled internally with a GitHub action.
- Setting branch back to none, then back to the selected branch will set off a build.
- Look in the actions tab to see the site getting built.
- Websites
- Documentation
- GitHub Pages | GitHub - Websites for you and your projects, hosted directly from your GitHub repository. Just edit, push, and your changes are live.
- Creating a GitHub Pages site - GitHub Docs
- You can create a GitHub Pages site in a new or existing repository.
- Create the entry file for your site. GitHub Pages will look for an index.html, index.md, or README.md file as the entry file for your site.
- It can take up to 10 minutes for changes to your site to publish after you push the changes to GitHub.
- Unpublishing a GitHub Pages site - GitHub Docs
- You can unpublish your GitHub Pages site so that your current deployment is removed and the site is no longer available. This is different from deleting the site.
- When you unpublish your site, your current deployment is removed and the site will no longer be available. Any existing repository settings or content will not be affected.
- Unpublishing a site does not permanently delete the site. For information on deleting a site, see Deleting a GitHub Pages site.
- Managing a custom domain for your GitHub Pages site - GitHub Docs - You can set up or update certain DNS records and your repository settings to point the default domain for your GitHub Pages site to a custom domain.
- Tutorials
- How to Use GitHub Pages in 2025! (Beginner's Guide) - YouTube | The Common Coder
- In this video, we'll guide you through the steps to set up and use GitHub Pages. We'll cover everything you need to know including an introduction to GitHub Pages, the difference between user sites and project sites, how to configure your repository to use GitHub Pages, and how to re-deploy your projects automatically whenever changes are made.
- Setting branch back to none, then back to the selected branch will set off a build.
- Look in the actions tab to see the site getting built.
- Excellent video.
- How to Host a Website on GitHub Pages Free (Custom Domain Setup Included) - YouTube - Master the art of hosting your website on GitHub Pages with a custom domain for that extra professional polish! In this comprehensive guide, we'll walk you through the entire process, from setting up your GitHub repository to configuring DNS records and seamlessly integrating your personalized domain. Elevate your online presence and impress visitors with your own custom domain on GitHub Pages.
- GitHub’s plans - GitHub Docs
- To publish a GitHub Pages site privately, you need to have an organization account. Additionally, your organization must use GitHub Enterprise Cloud.
- Deploy to `gh-pages` from a `dist` folder on the master branch - GitHub | cobyism
- Sometimes you want to have a subdirectory on the
master branch be the root directory of a repository’s gh-pages branch. This is useful for things like sites developed with Yeoman, or if you have a Jekyll site contained in the master branch alongside the rest of your code.
- GitHub Pages for a repo with multiple subfolders · community · Discussion #58276 · GitHub
- Yes, it is possible to configure a single repository with multiple subfolders to be enabled for GitHub Pages, and each subfolder can have its own unique URL.
- Here's how you can achieve this:
- A GitHub Pages tutorial on how to host personal websites | TheServerSide
- GitHub Pages offers a free way to host a personal website and allows for the website to be indexed by Google. Follow this GitHub Pages tutorial to create a personal website that gets found in Google search.
- Has a YouTube video
- Step-by-Step Guide: Launching Your Website with GitHub Pages | by Shirley Berchel | Medium - This step-by-step tutorial will guide you through the process of setting up your very own website on GitHub Pages.
Gists
What are they and how to do you create, edit and share them.
Apps
in the marketplace, how do i use them + put examples here.
GitHub Repositories
General
- About repositories - GitHub Docs
- A repository contains all of your code, your files, and each file's revision history. You can discuss and manage your work within the repository.
- When you create a repository, you can choose to make the repository public or private. Repositories in organizations that use GitHub Enterprise Cloud and are owned by an enterprise account can also be created with internal visibility.
- Public repositories are accessible to everyone on the internet.
- Private repositories are only accessible to you, people you explicitly share access with, and, for organization repositories, certain organization members.
- Branch Default Name
Naming
- TL;DR
- kebab-case
- Lowercase letters
- Hyphens for word separation
- No spaces
- No numbers
- No emojies
- Say what the repo is about in 3–5 words max
- If you are company or team consider using a format such as:
- [prefix]-[project-name]-[suffix]
- [team-name]-[service-name]-[environment]
Links
- Naming Conventions for Git Repositories: A Quick Guide
- Discover essential naming conventions for git repositories to enhance organization and collaboration. Master the art of clear, impactful project titles.
- lowercase letters with hyphens for word separation to ensure consistency and ease of access.
- GitHub Repository Best Practices - DEV Community
- Top 10 tips for managing GitHub repositories effectively, covering naming conventions, branch protection, code reviews, and streamlined collaboration.
- Not just naming convention.
- GitHub Naming Conventions: Best Practices for Clean and Professional Repos | Medium | Towards Dev
- Whether you’re launching your next open-source library or just tidying up personal projects, consistent naming conventions on GitHub go a long way. Repos are the front doors to your code — so make them readable, discoverable, and professional.
- Use hypens not underscores
- Why hypens?
- Avoid CamelCase and Spaces
- Lowercase Is the Norm
- TL;DR
- Be descriptive but concise: Say what the repo is about in 3–5 words max.
- Use hyphens for word separation.
- Stick to lowercase for consistency.
- Avoid version numbers in the repo name — use Git tags or releases instead.
- A Guide to Git Repository Naming Convention
- Master the git repository naming convention with our definitive guide. Learn best practices, see examples, and enforce standards to boost team productivity.
- kebab-case:
- all lowercase letters, with words separated by hyphens.
- It’s the go-to choice for a reason—it’s clean, easy to read, and avoids compatibility headaches across different operating systems.
- Includes notes on prefixes and suffix (while using kebab-case)
- [prefix]-[project-name]-[suffix]
- [team-name]-[service-name]-[environment]
- GitHub - GoldenbergLab/naming-and-documentation-conventions
- Naming conventions are helpful practices that teams follow to write code together. - GoldenbergLab/naming-and-documentation-conventions
- github - Is there a naming convention for git repositories? - Stack Overflow
- If you plan to create a PHP package you most likely want to put in on Packagist to make it available for other with composer. Composer has the as naming-convention to use vendorname/package-name-is-lowercase-with-hyphens.
- 10 GitHub Repository Naming Best Practices - CLIMB
- When creating a GitHub repository, there are a few best practices to follow in order to make it easier for others to find and use.
- Repository Naming Conventions | Medium | Nurhidayat
- Establishing clear and consistent naming conventions for repositories is essential for maintaining organization, enhancing collaboration, and improving code discoverability across development teams.
- This article outlines best practices for naming repositories, categorized by project type, to ensure a structured and understandable system.
- slug-case (words separated by hyphens) = this is kebab-case
- {project}-{general|service}-{service-name}-{type}
- GitHub Repository Naming Guide | AD GitHub Usage Guide
- This guide is designed to support you in effectively utilizing GitHub within the Fermi-AD Organization
- Here are a few things to consider when naming your repo:
- We want repos to be easily findable. Consistency is key to making it easy for someone to find your repo.
- Because GitHub provides many of it’s functions via generated URLs and REST APIs we should also consider what characters are used in repo names. Some characters are automatically replaced by GitHub, like spaces are turned into hyphens.
- hyphens and lower case
- Why we use hyphens for spaces in URLs | AD GitHub Usage Guide
- URL Structure Best Practices for Google Search | Google Search Central | Documentation | Google for Developers - It's a good idea to keep your site's URL structure as simple as possible. Learn more about the URL format recommended by Google, such as the use of hyphens, underscores, and domain structure.
- Duck.Ai
- GitHub Repository Naming Best Practices
- GitHub doesn't enforce strict naming rules, but following conventions makes your repositories more professional, discoverable, and easier to navigate. Here are the recommended practices:
- General Guidelines
- Character Restrictions
- Use only lowercase letters, numbers, hyphens, and underscores. GitHub automatically converts uppercase letters to lowercase, and special characters (except hyphens and underscores) aren't allowed. Avoid starting or ending with hyphens or underscores.
- Length and Clarity
- Keep names concise but descriptive — ideally under 50 characters. The name should immediately convey what the project does. Avoid generic names like "project," "code," or "my-repo."
- Naming Patterns by Project Type
| Project Type |
Naming Pattern |
Example |
| Language/framework library |
language-name or framework-name |
python-requests, react-router |
| Tool or CLI application |
action-verb or tool-purpose |
git-flow, docker-compose |
| Website or service |
service-name or domain-name |
blog-nextjs, api-gateway |
| Learning/tutorial project |
learn-topic or topic-tutorial |
learn-golang, javascript-fundamentals |
| Fork or variation |
original-fork or variant-description |
lodash-es, prettier-plugin-vue |
| Fork or variation |
dotfiles or config-purpose |
dotfiles, eslint-config |
- Additional Recommendations
- Use Hyphens Over Underscores
- Prefer hyphens (my-project) over underscores (my_project) because they're more readable in URLs and more commonly used in the JavaScript/web ecosystem.
- Avoid Redundant Information
- Don't include file extensions (.js, .py) or common prefixes like "the-" unless they're essential to the name.
- Industry Conventions
- Many organizations follow specific patterns:
- npm packages: lowercase with hyphens (eslint-plugin-react)
- Docker images: lowercase with hyphens or underscores (node-server)
- GitHub Actions: action-verb format (setup-node, publish-release)
- What to avoid
- Mixed case — MyProject (GitHub converts it anyway)
- Spaces or special characters — `my project!
- Overly long names — my-incredibly-detailed-project-description-for-learning
- Ambiguous abbreviations — proj-x or `temp-code
- Dates or versions in the name — project-2024 (use tags and releases instead)
- Reserved keywords — names that conflict with GitHub or popular tools
- Following these conventions makes your repositories more professional and helps users quickly understand what your project does.
Setup
Once your organizational structure (or not) is configured you then actually need to create your repos. In this section we will deal with how to setup a nice looking repository to ge the best out of it.
Github Logos and their Usage
- Official Docs
- Usage of the Combined logo and changing the colours.
- The combined GitHub logo (Octocat + wordmark together) and the SVG version you’re referring to are not part of the assets GitHub makes available for general public use.
- Per the GitHub Logo Policy, you may use the logos provided on the official GitHub Logos and Usage page in the specific scenarios described there, but other logo variations — including the combined lockup — are not offered for download or authorized for general use unless you have explicit written permission from GitHub.
- On your specific points:
- Use of the combined logo – Not permitted without explicit permission from GitHub. Only the individual logos provided on the official page are approved for use.
- Use of the SVG variant – Same as above; if it’s not one of the downloadable assets on the official page, it’s not approved for general use.
- Black and white variants – You can only use the color variations that are officially provided in the downloadable assets. If both black and white versions are included in the official logo pack, you may use them as-is (without altering proportions or colors). If they are not included, you would need explicit permission to use them.
- If you need to use the combined logo, the SVG version, or any color variant not included in the official assets, the next step would be to request permission directly from GitHub’s brand team.
GitHub Errors, Issues and their solutions
- Permalinks are not rendered into code blocks
- Issue
- When i am copying permalinks and then pasting them into a GitHub editor they are not getting parsed into code blocks.
- Cause
- If you look at the end of the faulty links you can see there is a alphanumeric code after the line definition eg: C1,C6 in the example below.
Bad: https://github.com/webmin/authentic-theme/blob/0ca0f9e215fdad49e028158f1f0d5096295a8595/tconfig-lib.pl#L201C1-L204C6
- If I remove C1 and C6 respectively at the end of the permalink, the permalink is rendered into a code block.
Good: https://github.com/webmin/authentic-theme/blob/0ca0f9e215fdad49e028158f1f0d5096295a8595/tconfig-lib.pl#L201-L204
- When you select by the code, the characters where you started and finished your selection from are added on the end in the form of C1,C2 and it is this new format blocking the rendering of this into a code block.
- Solution
- Select directly on the line numbers rather than selecting the code.
- Links
- Notes
- This should work cross repository but some people say it does not. I have not verified this either way.
- "git-receive-pack not permitted"
- Might be because the git repootpry is archived.
- git-receive-pack not permitted - Bing Search
- The "git-receive-pack not permitted" error typically indicates a permissions issue when trying to push changes to a remote Git repository.
- ^M characters being shown in a GitHub Diff
- Issue
- As you can see there are these red ^M control characters and the text file does not have correct formatting because the line endings are not working as they should.

- Cause
- The line endings are not being handled correctly between Windows and GitHub
- Solutions
- Set your editor to work with
LF(Unix/Linux) locally
- Set Git to automatically alter line from
CRLF(Windows) to LF(Linux/Unix) endings before submission and vice-versa upon checkout.
- Links
- What is the meaning of ^M in 'git diff'? - Stack Overflow
^M represents carriage return (CR). This diff means something removed a Unicode BOM from the beginning of the line and added a CR at the end.
- If
^M is in the new-changes side (right/green side), then that means the file's line-endings were changed from LF to CRLF, otherwise, file was CRLF and is now changed to LF.
- The
^ symbol stands for Control, so ^M means Ctrl+M.
- To get from that to the actual ASCII character code, you take the base character and flip bit 6 (i.e. XOR with 64). For letters, that just means subtract 64. So e.g.
^A is character code 1 (because A is 65). ^M is 77 - 64 = 13 (because M is 77), which corresponds to carriage return in ASCII.
^L represents the form-feed character (FF is the abbreviation, not hexadecimal), and has ASCII value 12 or 0x0C.
-
git config --global core.autocrlf true
- Difference Between Carriage Return (CR) and Line Feed (LF) ? How it is used in Different Operating System? | GeeksforGeeks - This article will explain their History, Usage in Different Operating Systems, Related Issues, what they are, when they were introduced, and how one can use them to address various issues arising from the e of CR, and LF.
- Why does Windows use CR LF? - Stack Overflow
- Historically when using teletypes
CR would return the carriage to the first position of the line while LF would feed to the next line.
- Using
CR+LF in the file themselves made it possible to send a file directly to the printer, without any kind of printer driver.
- Why is the line terminator CR+LF? - The Old New Thing - This shows the practical difference between the
CR and LF when they were first used.
Tools
A collection of useful gitHub tools.
Statistics
- GitHub Release Stats - Get the latest release stats like download counts, release dates, author on any GitHub project
GitHub URL Conversions
Get a Real Page URL from a Blob URL
I have found recently a lot of Google searches takes me to the repo/blob page for that particular GitHub asset, so I made these scripts.
The logic rule to convert a repo link to the rendered pages URL
Here I show you how you can manually convert the URLs which can be useful to also explain the process
## Formula for Converting
https://github.com/<owner>/<repo>/blob/<branch>/<content-path>/<file>.md
-->
https://<site-domain>/<lang>/<content-path>/<file>
## Example
https://github.com/github/docs/blob/main/content/search-github/searching-on-github/searching-issues-and-pull-requests.md
-->
https://docs.github.com/en/search-github/searching-on-github/searching-issues-and-pull-requests
Method 1 - Simple Javascript
javascript:(async function(){
try {
const repoUrl = window.location.href;
if(!repoUrl.includes("/blob/")){
alert("This does not appear to be a GitHub file URL.");
return;
}
// Extract owner, repo, branch, and path
const match = repoUrl.match(/github\.com\/([^\/]+)\/([^\/]+)\/blob\/([^\/]+)\/(.+)/);
if(!match){
alert("Failed to parse repo URL.");
return;
}
const owner = match[1];
const repo = match[2];
const branch = match[3];
let path = match[4];
// Remove .md extension if present
if(path.endsWith(".md")) path = path.slice(0,-3);
// Try to get homepage from GitHub API
const apiUrl = `https://api.github.com/repos/${owner}/${repo}`;
const response = await fetch(apiUrl);
const repoData = await response.json();
let siteDomain = repoData.homepage || `https://${owner}.github.io/${repo}`;
// Optional: detect /content/ folder like GitHub Docs
if(path.startsWith("content/")){
path = path.replace(/^content\//,'');
}
// Assume English for GitHub Docs style
const lang = (owner === "github" && repo === "docs") ? "/en" : "";
// Build final URL
const finalUrl = `${siteDomain}${lang}/${path}`;
window.location.href = finalUrl;
} catch(e){
alert("Error converting URL: " + e);
console.error(e);
}
})();
- This works if you paste it in to the console via DevTools.
- How it Works
- You click the bookmarklet while on a GitHub repo file.
- It parses the URL to get owner/repo/branch/path.
- Uses GitHub API to see if the repo has a homepage (common for Pages sites).
- If not, defaults to https://<owner>.github.io/<repo>.
- Removes content/ and .md if present (GitHub Docs style).
- Adds /en for GitHub Docs.
- Redirects your browser automatically.
Method 2 - Complex Javascript
Console Version
javascript: (async function(){
try{
const repoUrl = window.location.href;
const blobMatch = repoUrl.match(/^https?:\/\/github\.com\/([^\/]+)\/([^\/]+)\/blob\/([^\/]+)\/(.+)$/);
if(!blobMatch){
alert("This doesn't look like a GitHub file URL (must be a /blob/ file page).");
return;
}
const owner = blobMatch[1];
const repo = blobMatch[2];
// const branch = blobMatch[3]; // branch not used but could be
let path = blobMatch[4]; // e.g. content/search-github/....
// If path contains a 'content' like folder used by many doc repos, strip known prefixes
const prefixes = ["content/", "docs/content/", "docs/", "website/content/", "src/content/", "site/content/"];
for(const p of prefixes){
if(path.startsWith(p)){
path = path.slice(p.length);
break;
}
}
// Remove .md if present
if(path.endsWith(".md")) path = path.slice(0,-3);
// Convert index/README to directory root
path = path.replace(/(?:\/|^)(index|README)$/i, "");
path = path.replace(/\/+$/,""); // trim trailing slashes
// Special-case for official github/docs repo (friendly mapping)
if(owner === "github" && repo === "docs"){
const base = "https://docs.github.com";
const langSegment = "/en"; // adjust if you need another language
const final = base + langSegment + (path ? "/" + path : "");
window.location.href = final;
return;
}
// Try Pages API (gives correct html_url for Pages, including custom CNAME)
let siteBase = null;
try{
const pagesResp = await fetch(`https://api.github.com/repos/${owner}/${repo}/pages`);
if(pagesResp.ok){
const pagesData = await pagesResp.json();
if(pagesData && pagesData.html_url){
siteBase = pagesData.html_url.replace(/\/+$/,"");
}
}
} catch(e){
// ignore and try fallback
}
// Fallback: repo homepage field
if(!siteBase){
try{
const repoResp = await fetch(`https://api.github.com/repos/${owner}/${repo}`);
if(repoResp.ok){
const repoData = await repoResp.json();
if(repoData && repoData.homepage){
siteBase = repoData.homepage.replace(/\/+$/,"");
}
}
} catch(e){}
}
// Final fallback: standard GitHub Pages pattern
if(!siteBase){
siteBase = `https://${owner}.github.io/${repo}`;
}
// Build final URL, avoid duplicate slashes
const finalUrl = siteBase + (path ? (siteBase.endsWith("/") ? "" : "/") + path : "");
window.location.href = finalUrl;
} catch(err){
alert("Conversion failed: " + err);
console.error(err);
}
})();
- This works if you paste it in the console via Dev Tools.
Bookmarklet Version
javascript:(async function(){try{const repoUrl=window.location.href;const m=repoUrl.match(/^https?:\/\/github\.com\/([^\/]+)\/([^\/]+)\/blob\/([^\/]+)\/(.+)$/);if(!m){alert("Not a GitHub /blob/ file URL.");return;}const owner=m[1],repo=m[2];let path=m[4];const prefixes=["content/","docs/content/","docs/","website/content/","src/content/","site/content/"];for(const p of prefixes)if(path.startsWith(p)){path=path.slice(p.length);break;}if(path.endsWith(".md"))path=path.slice(0,-3);path=path.replace(/(?:\/|^)(index|README)$/i,"");path=path.replace(/\/+$/,"");if(owner==="github"&&repo==="docs"){const final="https://docs.github.com/en"+(path?"/"+path:"");window.location.href=final;return;}let siteBase=null;try{const r=await fetch(`https://api.github.com/repos/${owner}/${repo}/pages`);if(r.ok){const d=await r.json();if(d&&d.html_url)siteBase=d.html_url.replace(/\/+$/,"");}}catch(e){}if(!siteBase){try{const r2=await fetch(`https://api.github.com/repos/${owner}/${repo}`);if(r2.ok){const rd=await r2.json();if(rd&&rd.homepage)siteBase=rd.homepage.replace(/\/+$/,"");}}catch(e){} }if(!siteBase)siteBase=`https://${owner}.github.io/${repo}`;const finalUrl=siteBase+(path? (siteBase.endsWith("/")?"" : "/")+path:"");window.location.href=finalUrl;}catch(e){alert("Error: "+e);console.error(e);} })();
- Not tries this version, but because it has no spaces, so it might not work as a bookmarklet.
Notes
- The bookmarklet uses GitHub's public API (no auth). Unauthenticated requests are rate-limited (60/hr per IP). If you hit rate limits, the script will fallback to
https://<owner>.github.io/<repo> or the repo homepage if present.
- It expects you're on a
/blob/ file page. It will alert if you're not.
- It tries to be safe for many docs repo layouts (removes content/, docs/, index.md, README.md). If your repo uses a different structure, edit the prefixes array in the readable version.
- For
github/docs it forces https://docs.github.com/en/... which matches their site structure.
How do I see the Markdown for a Profile page
So you have come across a nice profile and want to know how they did certain badges or layouts on their profile page using Markdown, then these are the instructions for you.
Important Note
- Not all GitHub profiles have custom README files. The profile README feature is relatively new, so many users haven't created one yet.
- If the USERNAME/USERNAME repository doesn't exist or there's no README.md file, that user simply hasn't set up a custom profile.
Method 1 - View a GitHub Profile's Markdown
The README markdown, for a profile, is stored in a special repository. To see the markdown source code for any GitHub user's profile:
- Go to their profile repository: Visit https://github.com/USERNAME/USERNAME (replace USERNAME with the actual username). For example, if you want to see Elon Musk's profile markdown, you'd go to https://github.com/shoulders/shoulders.
- View the README file: Look for the README.md file in that repository. This is the file that displays on their profile.
- Click "Raw" to see the markdown: On the GitHub page for the README.md file, click the Raw button in the top-right corner of the file preview. This will show you the plain markdown source code without any GitHub formatting applied.
Method 2 - Direct URL
Alternatively, you can navigate directly to the raw markdown by following the URL logic below:
https://github.com/shoulders
-->
https://github.com/shoulders/shoulders/raw/main/README.md
-->
https://raw.github.com/shoulders/shoulders/raw/main/README.md
Get the GitHub Repository URL from the GitHub Page URL
Convert the URL by following the URL logic below:
## Logic
https://<USERNAME>.github.io/<REPOSITORY>/
-->
https://github.com/<USERNAME>/<REPOSITORY>
## Example
https://shoulders.github.io/mysql-slow-query-log-visualizer/
-->
https://github.com/shoulders/mysql-slow-query-log-visualizer
Repository Content
This content is not all specific to GitHub but deserves to be separate section.
General
Donation Services
- Membership and One-Time Donation services
- GitHub Sponsors · GitHub - Invest in the open source projects you depend on with GitHub Sponsors.
- Patreon
- Patreon is the best place to build community with your biggest fans, share exclusive work, and turn your passion into a lasting creative business.
- This has button inside my personal GitHub account to link to a Patreon account.
- Ko-fi | Make money doing what you love - Join 1,000,000+ creators! Set up your free page to get tips, sell products, offer memberships, and grow your community.
- Open Collective
- Raise, manage and disburse money with full transparency.
- We make it easy to raise, manage, and disburse money with full transparency. Start your open collective, apply to a Fiscal Host, and unlock funding for your community—free from red tape. The future is collective.
- Open Collective is a legal and financial toolbox for groups. It’s a fundraising + legal status + money management platform for your community. What do you want to do?
- Buy Me a Coffee - Buy Me a Coffee is the best way for creators and artists to accept support and membership from their fans.
- Liberapay
- Liberapay is a recurrent donations platform. We help you fund the creators and projects you appreciate.
- Liberapay's recurrent donations system is designed to provide a stable crowdfunded basic income to creators, enabling them to keep doing great work that benefits everyone.
- One-Time Donations from Payment Processors
- Wishlists and Credits
- Steam
- Steam is the ultimate destination for playing, discussing, and creating games.
- Create a wishlist and allow users to purchase Games or Credits.
- Welcome to GOG.com | best PC games DRM-free
- Download the best classic and new games on Windows, Mac & Linux. A vast selection of titles, DRM-free, with free goodies and 30-day money-back guarantee.
- Create a wishlist and allow users to purchase Games for you.
- Amazon
- Online retail giant.
- Create a wishlist and allow users to purchase stuff for you.
Profile Achievements and Badges
README.md Content
Things like flags and badges. I will add the code and tutorials for them here.
Badges
- I cannot find an article listing all of the GitHub badge commands:
[github-downloads-uri]
[![Version][github-version-img]][github-version-uri]
[![Downloads][github-downloads-img]][github-downloads-uri]
[![Size][github-size-img]][github-size-img]
- etc...
You will see these badges all over the place and they can be very useful to provide feedback to you userbase. Essentiall they are dynamically created images which can also be clickable.
These badges are small visual labels that show project stats such as version, downloads, file size, commit activity, or contributors.
They can be used in your Profile or on a project's README.
Examples
- Open-Shell-Menu/index.md at gh-pages · Open-Shell/Open-Shell-Menu · GitHub

- clipboard_copy/README.md at main · Augeaz/clipboard_copy · GitHub

- README.md code
[![Version][github-version-img]][github-version-uri]
[![Downloads][github-downloads-img]][github-downloads-uri]
- kefir500 (Alexander Gorishnyak) · GitHub
## ? Projects
[](https://github.com/shoulders/dns-hijacking-inspector)
[](https://qwertycube.com/dns-hijacking-inspector/)

## ?️ Tech Stack
### Languages




### Frontend



### Backend


### Desktop


### Mobile

### Deployment



- Quick Badge Template
[](https://github.com/USERNAME/REPO/releases)
[](https://github.com/USERNAME/REPO/releases)
[](https://github.com/USERNAME/REPO/commits)
[](https://github.com/USERNAME/REPO/graphs/contributors)
[](LICENSE)
- An example from (Aetherinox / csf-firewall)
<img src="/docs/images/logos/csf.png" height="230">
<!-- prettier-ignore-start -->
[![Version][github-version-img]][github-version-uri]
[![Downloads][github-downloads-img]][github-downloads-uri]
[![Size][github-size-img]][github-size-img]
[![Last Commit][github-commit-img]][github-commit-img]
[![Contributors][contribs-all-img]](#contributors-)
[](https://docs.configserver.dev)
<!-- prettier-ignore-end -->
<div align="center">
[](https://discord.configserver.dev)[](https://discord.configserver.dev)
Combined Badge Generators
Specific Service Providers Badge Generators
Tutorials
Providers
- GitHub - badges/awesome-badge
- A curated collection of awesome things related to status badges.
- While this list is maintained by members of the Shields core team, it includes Shields-related and non-Shields-related resources.
- Shields.io
- Concise, consistent, and legible badges
- Shields.io is the official universal badge generator.
- You can customize color, style, and text for any metric or service.
- Simple Icons
- SVG icons for popular brands
- You can combine Shields.io + Simple Icons for almost any logo.
- Home of the bulk of the icons used by both Shields and Badgen.
GitHub Actions
- badge-generator · Actions · GitHub Marketplace
- Generate and save custom Shields.io badges directly from your GitHub Actions workflow
- badge-generator is a GitHub Action that creates dynamic, customizable badges using Shields.io.
- Perfect for displaying code coverage, build status, quality metrics, or any custom label and value in your repository.
README.md generators
Contributors Grid / Table / Picture
- Scripts (Repositories)
- Scripts (User)
- How to Display Contributor Profile Pictures in Your GitHub README | by Basavaraja V | Medium
- Are you looking for a way to show your contributors’ profile opictures in your GitHub README file? While GitHub provides an API to retrieve contributors’ information, it can be a hassle to set up. Luckily, there’s an easy way to display profile pictures without using the API.
- In this article, we’ll show you how to display contributor profile pictures using a simple code snippet.
- GitHub Actions (Repositories)
- Websites (Repositories)
- Websites (User)
Markdown (Guides, Examples, Snippets and Templates)
Repository Layouts
- Generate a new repository using an existing repository as a tempalte using this command:
https://github.com/<user>/<repo>/generate
- Best Practices
- Best Practices for Organizing Git Repositories | by Tosin Akinosho | Medium
- Git has become an essential tool for version control and collaboration in modern software development. However, as projects grow in complexity and teams expand, maintaining a clean and organized Git repository structure becomes increasingly crucial.
- In this article, we’ll delve into the best practices for organizing Git repositories, highlighting the importance of clear directory structures, effective Git command usage, repository cleanliness strategies, and collaboration tips for teams.
- GitHub Repository Structure Best Practices | by Soulaiman Ghanem | Code Factory Berlin | Medium
- Whether we start a new project for private or for open source, we can follow some best practices to organize the repository for better team contribution and more elegant project structure.
- We have created a repo that contains all the mentioned files and folders, please feel free to use it as a starting template.
- Please note that you can also use the repo as template.
- GitHub is full of open source projects. However, I can recommend the followings 2 projects as a starting point to watch and learn the repo structure as well as contributing best practices:
- This article describes the structure.
- ideal github repo layout | Google Search - The AI description is quite useful
- How to Structure Files and Folder in your Project? - GeeksforGeeks
- Maintaining a clean, organized file and folder structure can significantly impact a project’s success in the fast-paced web development world.
- This article will go through the best practices and show you how to improve your project's file layout.
- Skeleton Repositories
- Example Repositories
File and Templates
- .gitignore
- .gitattributes
- Code of Conduct
- CODEOWNERS
Git
General
I will include how to use Git in VSCode tips and tricks.
- Official Sites
- Working Tree
- History
- Committing
- .gitconfig (Git Global Configuration)
- .gitattributes (Repository Configurations)
- Git Attributes | Git
- Using attributes, you can do things like specify separate merge strategies for individual files or directories in your project, tell Git how to diff non-text files, or have Git filter content before you check it into or out of Git.
- In this section, you’ll learn about some of the attributes you can set on your paths in your Git project and see a few examples of using this feature in practice.
What Git stores
- Git tracks:
- Source code and project files
- Commits
- Branches
- Tags
- References
- Git objects (blobs, trees, etc.)
- Git does not track:
- Issues
- Pull Requests
- Wikis
- Project boards
- Discussions
Issues
- Issues in GitHub - GeeksforGeeks
- GitHub is more than just a platform for hosting code; it’s a powerful tool for managing projects and collaborating with teams. One of the key features that provides this is the Issues system. GitHub Issues helps developers track bugs, enhancements, and tasks, ensuring that projects stay organized and on track. In this article, we'll see what GitHub Issues are, how to use them effectively, and best practices for managing them.
- Issues are Bolt Ons and are not transferred with forks.
Working with Forks
- Git Fork vs Git Clone - YouTube | Boot dev
- Okay, you forked a repo and made your changes, now what? In this video we explain what you can do to contribute to the original repository and become a good contributor!
- When he says clone the repo in this context, he is creating a local repo of his fork.
- Fork a repository - GitHub Docs - A fork is a new repository that shares code and visibility settings with the original “upstream” repository.
- You can now fork a repo and copy only the default branch - GitHub Changelog
- Previously, when creating a fork all branches from the parent repository were copied to the new fork repository. There are several scenarios where this is unneeded, such as contributing to open-source projects. When all branches are copied, it could result in slow repo cloning and unnecessary disk usage. With this new feature, only the default branch is copied; no other branches or tags. This may result in faster clones because only reachable objects will be pulled down.
- Forking a repository versus duplicating a repository - About forks - GitHub Docs - If you want to create a new repository from the contents of an existing repository but don't want to merge your changes to the upstream in the future, you can duplicate the repository or, if the repository is a template, you can use the repository as a template.
- When forking a repository on GitHub, you have the option to select "Copy the default branch only."
- If you leave this option unchecked, GitHub will copy all branches from the source repository into your fork.
- This means your fork will include every branch present in the original repository, not just the default branch (commonly named main or master). This can be beneficial if you need access to multiple branches for development or reference purposes.
- For more details, you can refer to GitHub's official documentation on forking repositories here.
- When I fork a repository are the issues copied as well?
- No, when you fork a repository on GitHub, the issues from the original repository are not copied to your fork.
- Forking creates a new repository that includes the code, commit history, branches, and tags, but it does not include issues, pull requests, or other metadata.
- This design ensures that discussions and issue tracking remain centralized in the original repository, preventing fragmentation across multiple forks.
- If you need to reference or track issues in your forked repository, GitHub provides the ability to transfer individual issues between repositories. This process must be done manually for each issue. For detailed steps, see Transferring an issue to another repository.
- Alternatively, if you're looking to duplicate a repository along with its issues, you might consider using third-party tools or scripts that utilize GitHub's API to export and import issues. However, these methods require additional setup and permissions.
- Issues are not part of Git — they are a feature provided by GitHub (and other Git hosting platforms like GitLab or Bitbucket).
- Issues are not stored in the Git repository itself. They live on the GitHub platform, as part of its web-based features for project management, collaboration, and discussion.
Branches
- Git Branches Tutorial - YouTube | freeCodeCamp.org - Branches are one of Git's most important concepts. And to master Git, it's essential to have a thorough understanding of how branches work. In this course, we'll look at the many actions you can perform around branches - from creating and deleting them all the way to publishing, renaming, and comparing them.
Git GUIs and Apps
These are just here for reference, you should only use VSCode with the relevant extensions. It should be noted most IDE also have visual GUIs for handling Git.
Tutorials
Cheatsheets
- Git Cheat Sheet | GeeksforGeeks
- Git Cheat Sheet is a comprehensive quick guide for learning Git concepts, from very basic to advanced levels. By this Git Cheat Sheet, our aim is to provide a handy reference tool for both beginners and experienced developers/DevOps engineers.
- This Git Cheat Sheet not only makes it easier for newcomers to get started but also serves as a refresher for experienced professionals.
- Git commands: A comprehensive cheat sheet (with examples) - Sling Academy - This comprehensive cheat sheet will take you through the basic to advanced Git commands with examples and expected outputs, helping you navigate and use Git more effectively.
- Git Cheat Sheet - GeeksforGeeks
- A concise, well-structured guide for developers and DevOps engineers ideal for both beginners and experienced users.
- It covers everything from Git installation (Linux, Windows, macOS) to configuration, core commands, branching, merging, history management, and collaboration.
- Perfect for quick reference during development and deployment.
Commands
- revert vs rest vs rebase
- revert
- reset
- git reset | Git Documentation
- Git Tutorial #34: How to Use Git Reset Soft, Mixed, and Hard | Learn Git - YouTube | GitKraken - Need to undo local changes or rewrite commit history? Git reset gives you that power and then some.
- Git Reset: What's the Difference Between --mixed, --soft, and --hard? (Explained for Splitting Commits + Staging Area Basics) — codegenes.net
- Working Directory: The folder where you edit files (what you see in your code editor).
- Staging Area (Index): A "preview" of your next commit. Files here are marked to be included in the next commit.
- HEAD: A pointer to the latest commit in your current branch (the "tip" of the branch).
- 3.1 git reset --soft: Rewind History, Keep Changes Staged
- 3.2 git reset --mixed (Default): Rewind History, Unstage Changes
- 3.3 git reset --hard: Rewind History, Discard All Changes
- What's The Difference Between git reset --mixed, --soft, and --hard? - GeeksforGeeks
- This article explains these options, their syntax, features, and uses, and provides practical examples to help you understand their differences and use cases.
- git reset is a command that undoes changes by moving the HEAD (the current branch reference) to a specified commit.
- It can affect the staging area (index), the working directory, or both, depending on the option used.
- The three primary modes of git reset—--mixed, --soft, and --hard—determine how the reset operation impacts these areas.
- Git Reset Explained (Soft vs Mixed vs Hard) with Examples | GoLinuxCloud
- Learn Git reset with practical examples including soft, mixed, and hard reset. Understand the differences, use cases, and how git reset affects the working directory, staging area, and commit history. Fix common errors and master git reset commands step by step.
- Has diagram.
- What's the difference between git reset --mixed, --soft, and --hard? - Stack Overflow - I was looking at the page In plain English, what does "git reset" do?, but I realized I don't really understand what the git index or staging area is and thus the explanations didn't help.
Repository Files and Folders
There are all of these files and folders that everyone seems to use so I am going to try and get a full list.
- .github/
- GitHub settings folder which holds things like issue templates.
- .vscode/
- VSCode workspace settings folder
- Workspace settings are specific to a project and can be shared with other developers on your team.
- .vscode/extensions.json
- Recommended extension settings that should be followed by the entire team.
- .vscode/launch.json
- Debug configurations, usually shared between a team.
- .vscode/tasks.json
- .vscode/settings.json
- Used to enforce project-specific settings and overrides global user settings, e.g. specific formatting rules.
- .phan/...
- .editorconfig
- .env
- .gitattributes
- .gitignore
- .git-blame-ignore-revs
- .gitmodules
- .prettierrc
- .prettierignore
- file to say which files/folders should be ignored by prettier
- .php_cs.cache
- .vscodeignore
- It’s a file used when packaging VS Code extensions.
- It tells the VS Code extension packaging tool (e.g.,
vsce) which files/folders to exclude from your .vsix package.
- .travis.yml
- .php-cs-fixer.dist.php
- .drone.yml
- .appveyor.yml
- .eslintrc
- ESLint config file.
- As off ESLint v9.0.0 it is deprecated.
- .eslintrc.js
- ESLint config file.
- As off ESLint v9.0.0 it is deprecated.
- .eslintrc.json
- ESLint config file
- As off ESLint v9.0.0 it is deprecated.
- .eslintignore
- Files to be ignored by the ESLint processor
- eslint.config.js
- ESlint V9.0.0+ config file ???
- Use Case: CommonJS module system.
- Default Behaviour: If your project uses Node.js with CommonJS (default for older Node.js versions or projects not explicitly using ES modules), this is the standard choice.
- eslint.config.mjs
- ESlint V9.0.0+ config file
- Use Case: ES module system.
- Default Behaviour: If your project uses ES modules (e.g., "type": "module" in package.json), you should use .mjs for compatibility.
- When I
init eslint in vscode via npm then a eslint.config.mjs is created.
- .tsconfig.json
- webpack.config.js
- yarn.lock
- package.json
- package.yaml
- package-json-schema.json
- package-lock.json
- package.nls.json
- checkstyle.json
- composer.json
- composer.lock
- web.configruleset.xml
- renovate.json
- phpunit.xml.dist
- phpunit-pgsql.xml.dist
- phpstan.neon
- cypress.config.dist.mjs
- build.xml
- CODE_OF_CONDUCT.md
- LICENSE
- LICENSE-CODE
- README.md
- SECURITY.md
- SUPPORT.md