Plan the move #1

Description

@github-learning-lab

Step 1: Plan the migration

Migrating your repository to GitHub gives you the feature-rich tools and collaboration needed to elevate your project to the next level. This course will guide you through the necessary steps to migrate your repository from another version control system to GitHub.

I know some people like to get straight to the point while others like more information. For those who like more information, be sure to check out the drop-downs like this one ⬇️

Why move to GitHub?

Why move to GitHub?

You may be wondering what this GitHub thing is all about and why you should use it. If this sounds like you, here are a few reasons to make GitHub your project's new home:

  • Version control — Everything on GitHub is stored in Git, the best version control system around. Version control allows you to experiment and make mistakes in code without messing up your final product.
  • Keep your code in one place — Whether you work on multiple computers or just want to get some important projects off your computer, GitHub is the perfect place to store your projects online.
  • Collaboration — Once your code is on GitHub, you can invite others to work on your code with you, share it with the world, or send a link to a friend to help you debug a problem.

Important considerations for migrations

If you are moving from another version control system such as Mercurial, Subversion, or another Git platform, you will need to make a few decisions:

  1. Do you need all of the history?
  2. Is there project data that lives outside of the history you need to preserve? (ex: Issues, Discussions, Pull Requests)

Should you keep all of the history?

If you are moving your project to GitHub as a public project, you may want to consider what is in your history. For example:

If ...Then ...
If you do want to keep the historyCheck out the Using the GitHub Importer section under Next steps.
If you do not want all of this historyWe recommend you do a clean cutover to "restart" version control and remove any unwanted history. If this sounds like the right option for you, check out the Doing a clean cutover section under Next steps.

Should you keep non-Git data?

Mapping users, keeping commit comments, and other data migrations are more complex, but not impossible. For most version control systems there are helpful Open Source 📖 tools available. Here are a few resources:

Other scenarios

Your project is on another site not using version control, such as CodePen or Glitch

Moving your project from another site not using version control

If you are moving your project from a site not using version control, such as CodePen or Glitch, the steps are a bit different that migrating your project from a source that is using version control. Because of this, we have a dedicated course for uploading your local project to GitHub. If this is your situation, please join the Uploading your local project to GitHub course to learn how to handle your case.


Your project is already on your local machine

Your project is already on your local machine

✨ Terrific! @Baitula since you already have the project locally, you are almost ready to move it to GitHub.

But, this course guides you through the necessary steps to migrate your repository from another version control system unto GitHub. Since your project is already on your local machine, you need slightly different instructions. Please join the Uploading your local project to GitHub course to learn how to handle your case.


⌨️ Activity: Next steps

Choose the drop-down below that best fits your current situation or for a printable version of the steps in this course, check out the Quick Reference Guide.

Using the GitHub Importer

Using the GitHub Importer

GitHub has a terrific import tool that will allow you to import your repository in just a few minutes.

First, let's make sure your repository 📖 is Git friendly. Close this issue and I will open a new issue with next steps.


Doing a clean cutover

Doing a clean cutover

To do a clean cutover, you will need to remove the existing history. Some people like to save a back up of the project with the history. To start the process:

  1. Download a copy of the project to your local machine.
  2. Remove version control (with Git this is as simple as running rm -rf .git inside the repository).
  3. Now that your project is local on your machine and you have removed any history being tracked by Git, the remaining steps in this course largely cover migrating that Git history. Since you just removed that aspect of your project, please join the Uploading your local project to GitHub course to see the next steps to upload your local project to GitHub.

Migrating non-Git data

Migrating non-Git data

These migrations are more nuanced and outside the scope of this course. I recommend you go through these steps with a simple repository so you can learn best practices and then apply them to your more complex migration.

If you don't have a repository to use for this activity, you are welcome to use this one: https://github.com/githubtraining/github-move


Ready to move on?

Close this issue to signal you are finished with this step. I will open a new issue to show you how to optimize your repository for Git operations. 🎉


Watch below for my response

🤖 I'm waiting for you to close the issue before moving on.

Sometimes I respond too fast for the page to update! If you perform an expected action and don't see a response from me, wait a few seconds and refresh the page for your next steps.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
       blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
      }
      } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
      })();
      (function(){
      try {
      var __m = "github.com";
      var __re = new RegExp('^' + "github\\.com" + '
      
      Skip to content

      Plan the move #1

      Description

      @github-learning-lab

      Step 1: Plan the migration

      Migrating your repository to GitHub gives you the feature-rich tools and collaboration needed to elevate your project to the next level. This course will guide you through the necessary steps to migrate your repository from another version control system to GitHub.

      I know some people like to get straight to the point while others like more information. For those who like more information, be sure to check out the drop-downs like this one ⬇️

      Why move to GitHub?

      Why move to GitHub?

      You may be wondering what this GitHub thing is all about and why you should use it. If this sounds like you, here are a few reasons to make GitHub your project's new home:

      • Version control — Everything on GitHub is stored in Git, the best version control system around. Version control allows you to experiment and make mistakes in code without messing up your final product.
      • Keep your code in one place — Whether you work on multiple computers or just want to get some important projects off your computer, GitHub is the perfect place to store your projects online.
      • Collaboration — Once your code is on GitHub, you can invite others to work on your code with you, share it with the world, or send a link to a friend to help you debug a problem.

      Important considerations for migrations

      If you are moving from another version control system such as Mercurial, Subversion, or another Git platform, you will need to make a few decisions:

      1. Do you need all of the history?
      2. Is there project data that lives outside of the history you need to preserve? (ex: Issues, Discussions, Pull Requests)

      Should you keep all of the history?

      If you are moving your project to GitHub as a public project, you may want to consider what is in your history. For example:

      If ...Then ...
      If you do want to keep the historyCheck out the Using the GitHub Importer section under Next steps.
      If you do not want all of this historyWe recommend you do a clean cutover to "restart" version control and remove any unwanted history. If this sounds like the right option for you, check out the Doing a clean cutover section under Next steps.

      Should you keep non-Git data?

      Mapping users, keeping commit comments, and other data migrations are more complex, but not impossible. For most version control systems there are helpful Open Source 📖 tools available. Here are a few resources:

      Other scenarios

      Your project is on another site not using version control, such as CodePen or Glitch

      Moving your project from another site not using version control

      If you are moving your project from a site not using version control, such as CodePen or Glitch, the steps are a bit different that migrating your project from a source that is using version control. Because of this, we have a dedicated course for uploading your local project to GitHub. If this is your situation, please join the Uploading your local project to GitHub course to learn how to handle your case.


      Your project is already on your local machine

      Your project is already on your local machine

      ✨ Terrific! @Baitula since you already have the project locally, you are almost ready to move it to GitHub.

      But, this course guides you through the necessary steps to migrate your repository from another version control system unto GitHub. Since your project is already on your local machine, you need slightly different instructions. Please join the Uploading your local project to GitHub course to learn how to handle your case.


      ⌨️ Activity: Next steps

      Choose the drop-down below that best fits your current situation or for a printable version of the steps in this course, check out the Quick Reference Guide.

      Using the GitHub Importer

      Using the GitHub Importer

      GitHub has a terrific import tool that will allow you to import your repository in just a few minutes.

      First, let's make sure your repository 📖 is Git friendly. Close this issue and I will open a new issue with next steps.


      Doing a clean cutover

      Doing a clean cutover

      To do a clean cutover, you will need to remove the existing history. Some people like to save a back up of the project with the history. To start the process:

      1. Download a copy of the project to your local machine.
      2. Remove version control (with Git this is as simple as running rm -rf .git inside the repository).
      3. Now that your project is local on your machine and you have removed any history being tracked by Git, the remaining steps in this course largely cover migrating that Git history. Since you just removed that aspect of your project, please join the Uploading your local project to GitHub course to see the next steps to upload your local project to GitHub.

      Migrating non-Git data

      Migrating non-Git data

      These migrations are more nuanced and outside the scope of this course. I recommend you go through these steps with a simple repository so you can learn best practices and then apply them to your more complex migration.

      If you don't have a repository to use for this activity, you are welcome to use this one: https://github.com/githubtraining/github-move


      Ready to move on?

      Close this issue to signal you are finished with this step. I will open a new issue to show you how to optimize your repository for Git operations. 🎉


      Watch below for my response

      🤖 I'm waiting for you to close the issue before moving on.

      Sometimes I respond too fast for the page to update! If you perform an expected action and don't see a response from me, wait a few seconds and refresh the page for your next steps.

      Activity

      Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

      Metadata

      Metadata

      Assignees

      No one assigned

        Labels

        No labels
        No labels

        Projects

        No projects

          Milestone

          No milestone

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
          Skip to content

          Plan the move #1

          Description

          @github-learning-lab

          Step 1: Plan the migration

          Migrating your repository to GitHub gives you the feature-rich tools and collaboration needed to elevate your project to the next level. This course will guide you through the necessary steps to migrate your repository from another version control system to GitHub.

          I know some people like to get straight to the point while others like more information. For those who like more information, be sure to check out the drop-downs like this one ⬇️

          Why move to GitHub?

          Why move to GitHub?

          You may be wondering what this GitHub thing is all about and why you should use it. If this sounds like you, here are a few reasons to make GitHub your project's new home:

          • Version control — Everything on GitHub is stored in Git, the best version control system around. Version control allows you to experiment and make mistakes in code without messing up your final product.
          • Keep your code in one place — Whether you work on multiple computers or just want to get some important projects off your computer, GitHub is the perfect place to store your projects online.
          • Collaboration — Once your code is on GitHub, you can invite others to work on your code with you, share it with the world, or send a link to a friend to help you debug a problem.

          Important considerations for migrations

          If you are moving from another version control system such as Mercurial, Subversion, or another Git platform, you will need to make a few decisions:

          1. Do you need all of the history?
          2. Is there project data that lives outside of the history you need to preserve? (ex: Issues, Discussions, Pull Requests)

          Should you keep all of the history?

          If you are moving your project to GitHub as a public project, you may want to consider what is in your history. For example:

          If ...Then ...
          If you do want to keep the historyCheck out the Using the GitHub Importer section under Next steps.
          If you do not want all of this historyWe recommend you do a clean cutover to "restart" version control and remove any unwanted history. If this sounds like the right option for you, check out the Doing a clean cutover section under Next steps.

          Should you keep non-Git data?

          Mapping users, keeping commit comments, and other data migrations are more complex, but not impossible. For most version control systems there are helpful Open Source 📖 tools available. Here are a few resources:

          Other scenarios

          Your project is on another site not using version control, such as CodePen or Glitch

          Moving your project from another site not using version control

          If you are moving your project from a site not using version control, such as CodePen or Glitch, the steps are a bit different that migrating your project from a source that is using version control. Because of this, we have a dedicated course for uploading your local project to GitHub. If this is your situation, please join the Uploading your local project to GitHub course to learn how to handle your case.


          Your project is already on your local machine

          Your project is already on your local machine

          ✨ Terrific! @Baitula since you already have the project locally, you are almost ready to move it to GitHub.

          But, this course guides you through the necessary steps to migrate your repository from another version control system unto GitHub. Since your project is already on your local machine, you need slightly different instructions. Please join the Uploading your local project to GitHub course to learn how to handle your case.


          ⌨️ Activity: Next steps

          Choose the drop-down below that best fits your current situation or for a printable version of the steps in this course, check out the Quick Reference Guide.

          Using the GitHub Importer

          Using the GitHub Importer

          GitHub has a terrific import tool that will allow you to import your repository in just a few minutes.

          First, let's make sure your repository 📖 is Git friendly. Close this issue and I will open a new issue with next steps.


          Doing a clean cutover

          Doing a clean cutover

          To do a clean cutover, you will need to remove the existing history. Some people like to save a back up of the project with the history. To start the process:

          1. Download a copy of the project to your local machine.
          2. Remove version control (with Git this is as simple as running rm -rf .git inside the repository).
          3. Now that your project is local on your machine and you have removed any history being tracked by Git, the remaining steps in this course largely cover migrating that Git history. Since you just removed that aspect of your project, please join the Uploading your local project to GitHub course to see the next steps to upload your local project to GitHub.

          Migrating non-Git data

          Migrating non-Git data

          These migrations are more nuanced and outside the scope of this course. I recommend you go through these steps with a simple repository so you can learn best practices and then apply them to your more complex migration.

          If you don't have a repository to use for this activity, you are welcome to use this one: https://github.com/githubtraining/github-move


          Ready to move on?

          Close this issue to signal you are finished with this step. I will open a new issue to show you how to optimize your repository for Git operations. 🎉


          Watch below for my response

          🤖 I'm waiting for you to close the issue before moving on.

          Sometimes I respond too fast for the page to update! If you perform an expected action and don't see a response from me, wait a few seconds and refresh the page for your next steps.

          Activity

          Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

          Metadata

          Metadata

          Assignees

          No one assigned

            Labels

            No labels
            No labels

            Projects

            No projects

              Milestone

              No milestone

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
              Skip to content

              Plan the move #1

              Description

              @github-learning-lab

              Step 1: Plan the migration

              Migrating your repository to GitHub gives you the feature-rich tools and collaboration needed to elevate your project to the next level. This course will guide you through the necessary steps to migrate your repository from another version control system to GitHub.

              I know some people like to get straight to the point while others like more information. For those who like more information, be sure to check out the drop-downs like this one ⬇️

              Why move to GitHub?

              Why move to GitHub?

              You may be wondering what this GitHub thing is all about and why you should use it. If this sounds like you, here are a few reasons to make GitHub your project's new home:

              • Version control — Everything on GitHub is stored in Git, the best version control system around. Version control allows you to experiment and make mistakes in code without messing up your final product.
              • Keep your code in one place — Whether you work on multiple computers or just want to get some important projects off your computer, GitHub is the perfect place to store your projects online.
              • Collaboration — Once your code is on GitHub, you can invite others to work on your code with you, share it with the world, or send a link to a friend to help you debug a problem.

              Important considerations for migrations

              If you are moving from another version control system such as Mercurial, Subversion, or another Git platform, you will need to make a few decisions:

              1. Do you need all of the history?
              2. Is there project data that lives outside of the history you need to preserve? (ex: Issues, Discussions, Pull Requests)

              Should you keep all of the history?

              If you are moving your project to GitHub as a public project, you may want to consider what is in your history. For example:

              If ...Then ...
              If you do want to keep the historyCheck out the Using the GitHub Importer section under Next steps.
              If you do not want all of this historyWe recommend you do a clean cutover to "restart" version control and remove any unwanted history. If this sounds like the right option for you, check out the Doing a clean cutover section under Next steps.

              Should you keep non-Git data?

              Mapping users, keeping commit comments, and other data migrations are more complex, but not impossible. For most version control systems there are helpful Open Source 📖 tools available. Here are a few resources:

              Other scenarios

              Your project is on another site not using version control, such as CodePen or Glitch

              Moving your project from another site not using version control

              If you are moving your project from a site not using version control, such as CodePen or Glitch, the steps are a bit different that migrating your project from a source that is using version control. Because of this, we have a dedicated course for uploading your local project to GitHub. If this is your situation, please join the Uploading your local project to GitHub course to learn how to handle your case.


              Your project is already on your local machine

              Your project is already on your local machine

              ✨ Terrific! @Baitula since you already have the project locally, you are almost ready to move it to GitHub.

              But, this course guides you through the necessary steps to migrate your repository from another version control system unto GitHub. Since your project is already on your local machine, you need slightly different instructions. Please join the Uploading your local project to GitHub course to learn how to handle your case.


              ⌨️ Activity: Next steps

              Choose the drop-down below that best fits your current situation or for a printable version of the steps in this course, check out the Quick Reference Guide.

              Using the GitHub Importer

              Using the GitHub Importer

              GitHub has a terrific import tool that will allow you to import your repository in just a few minutes.

              First, let's make sure your repository 📖 is Git friendly. Close this issue and I will open a new issue with next steps.


              Doing a clean cutover

              Doing a clean cutover

              To do a clean cutover, you will need to remove the existing history. Some people like to save a back up of the project with the history. To start the process:

              1. Download a copy of the project to your local machine.
              2. Remove version control (with Git this is as simple as running rm -rf .git inside the repository).
              3. Now that your project is local on your machine and you have removed any history being tracked by Git, the remaining steps in this course largely cover migrating that Git history. Since you just removed that aspect of your project, please join the Uploading your local project to GitHub course to see the next steps to upload your local project to GitHub.

              Migrating non-Git data

              Migrating non-Git data

              These migrations are more nuanced and outside the scope of this course. I recommend you go through these steps with a simple repository so you can learn best practices and then apply them to your more complex migration.

              If you don't have a repository to use for this activity, you are welcome to use this one: https://github.com/githubtraining/github-move


              Ready to move on?

              Close this issue to signal you are finished with this step. I will open a new issue to show you how to optimize your repository for Git operations. 🎉


              Watch below for my response

              🤖 I'm waiting for you to close the issue before moving on.

              Sometimes I respond too fast for the page to update! If you perform an expected action and don't see a response from me, wait a few seconds and refresh the page for your next steps.

              Activity

              Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

              Metadata

              Metadata

              Assignees

              No one assigned

                Labels

                No labels
                No labels

                Projects

                No projects

                  Milestone

                  No milestone

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions

                  , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
                  Skip to content

                  Plan the move #1

                  Description

                  @github-learning-lab

                  Step 1: Plan the migration

                  Migrating your repository to GitHub gives you the feature-rich tools and collaboration needed to elevate your project to the next level. This course will guide you through the necessary steps to migrate your repository from another version control system to GitHub.

                  I know some people like to get straight to the point while others like more information. For those who like more information, be sure to check out the drop-downs like this one ⬇️

                  Why move to GitHub?

                  Why move to GitHub?

                  You may be wondering what this GitHub thing is all about and why you should use it. If this sounds like you, here are a few reasons to make GitHub your project's new home:

                  • Version control — Everything on GitHub is stored in Git, the best version control system around. Version control allows you to experiment and make mistakes in code without messing up your final product.
                  • Keep your code in one place — Whether you work on multiple computers or just want to get some important projects off your computer, GitHub is the perfect place to store your projects online.
                  • Collaboration — Once your code is on GitHub, you can invite others to work on your code with you, share it with the world, or send a link to a friend to help you debug a problem.

                  Important considerations for migrations

                  If you are moving from another version control system such as Mercurial, Subversion, or another Git platform, you will need to make a few decisions:

                  1. Do you need all of the history?
                  2. Is there project data that lives outside of the history you need to preserve? (ex: Issues, Discussions, Pull Requests)

                  Should you keep all of the history?

                  If you are moving your project to GitHub as a public project, you may want to consider what is in your history. For example:

                  If ...Then ...
                  If you do want to keep the historyCheck out the Using the GitHub Importer section under Next steps.
                  If you do not want all of this historyWe recommend you do a clean cutover to "restart" version control and remove any unwanted history. If this sounds like the right option for you, check out the Doing a clean cutover section under Next steps.

                  Should you keep non-Git data?

                  Mapping users, keeping commit comments, and other data migrations are more complex, but not impossible. For most version control systems there are helpful Open Source 📖 tools available. Here are a few resources:

                  Other scenarios

                  Your project is on another site not using version control, such as CodePen or Glitch

                  Moving your project from another site not using version control

                  If you are moving your project from a site not using version control, such as CodePen or Glitch, the steps are a bit different that migrating your project from a source that is using version control. Because of this, we have a dedicated course for uploading your local project to GitHub. If this is your situation, please join the Uploading your local project to GitHub course to learn how to handle your case.


                  Your project is already on your local machine

                  Your project is already on your local machine

                  ✨ Terrific! @Baitula since you already have the project locally, you are almost ready to move it to GitHub.

                  But, this course guides you through the necessary steps to migrate your repository from another version control system unto GitHub. Since your project is already on your local machine, you need slightly different instructions. Please join the Uploading your local project to GitHub course to learn how to handle your case.


                  ⌨️ Activity: Next steps

                  Choose the drop-down below that best fits your current situation or for a printable version of the steps in this course, check out the Quick Reference Guide.

                  Using the GitHub Importer

                  Using the GitHub Importer

                  GitHub has a terrific import tool that will allow you to import your repository in just a few minutes.

                  First, let's make sure your repository 📖 is Git friendly. Close this issue and I will open a new issue with next steps.


                  Doing a clean cutover

                  Doing a clean cutover

                  To do a clean cutover, you will need to remove the existing history. Some people like to save a back up of the project with the history. To start the process:

                  1. Download a copy of the project to your local machine.
                  2. Remove version control (with Git this is as simple as running rm -rf .git inside the repository).
                  3. Now that your project is local on your machine and you have removed any history being tracked by Git, the remaining steps in this course largely cover migrating that Git history. Since you just removed that aspect of your project, please join the Uploading your local project to GitHub course to see the next steps to upload your local project to GitHub.

                  Migrating non-Git data

                  Migrating non-Git data

                  These migrations are more nuanced and outside the scope of this course. I recommend you go through these steps with a simple repository so you can learn best practices and then apply them to your more complex migration.

                  If you don't have a repository to use for this activity, you are welcome to use this one: https://github.com/githubtraining/github-move


                  Ready to move on?

                  Close this issue to signal you are finished with this step. I will open a new issue to show you how to optimize your repository for Git operations. 🎉


                  Watch below for my response

                  🤖 I'm waiting for you to close the issue before moving on.

                  Sometimes I respond too fast for the page to update! If you perform an expected action and don't see a response from me, wait a few seconds and refresh the page for your next steps.

                  Activity

                  Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

                  Metadata

                  Metadata

                  Assignees

                  No one assigned

                    Labels

                    No labels
                    No labels

                    Projects

                    No projects

                      Milestone

                      No milestone

                      Relationships

                      None yet

                      Development

                      No branches or pull requests

                      Issue actions

                      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
                      Skip to content

                      Plan the move #1

                      Description

                      @github-learning-lab

                      Step 1: Plan the migration

                      Migrating your repository to GitHub gives you the feature-rich tools and collaboration needed to elevate your project to the next level. This course will guide you through the necessary steps to migrate your repository from another version control system to GitHub.

                      I know some people like to get straight to the point while others like more information. For those who like more information, be sure to check out the drop-downs like this one ⬇️

                      Why move to GitHub?

                      Why move to GitHub?

                      You may be wondering what this GitHub thing is all about and why you should use it. If this sounds like you, here are a few reasons to make GitHub your project's new home:

                      • Version control — Everything on GitHub is stored in Git, the best version control system around. Version control allows you to experiment and make mistakes in code without messing up your final product.
                      • Keep your code in one place — Whether you work on multiple computers or just want to get some important projects off your computer, GitHub is the perfect place to store your projects online.
                      • Collaboration — Once your code is on GitHub, you can invite others to work on your code with you, share it with the world, or send a link to a friend to help you debug a problem.

                      Important considerations for migrations

                      If you are moving from another version control system such as Mercurial, Subversion, or another Git platform, you will need to make a few decisions:

                      1. Do you need all of the history?
                      2. Is there project data that lives outside of the history you need to preserve? (ex: Issues, Discussions, Pull Requests)

                      Should you keep all of the history?

                      If you are moving your project to GitHub as a public project, you may want to consider what is in your history. For example:

                      If ...Then ...
                      If you do want to keep the historyCheck out the Using the GitHub Importer section under Next steps.
                      If you do not want all of this historyWe recommend you do a clean cutover to "restart" version control and remove any unwanted history. If this sounds like the right option for you, check out the Doing a clean cutover section under Next steps.

                      Should you keep non-Git data?

                      Mapping users, keeping commit comments, and other data migrations are more complex, but not impossible. For most version control systems there are helpful Open Source 📖 tools available. Here are a few resources:

                      Other scenarios

                      Your project is on another site not using version control, such as CodePen or Glitch

                      Moving your project from another site not using version control

                      If you are moving your project from a site not using version control, such as CodePen or Glitch, the steps are a bit different that migrating your project from a source that is using version control. Because of this, we have a dedicated course for uploading your local project to GitHub. If this is your situation, please join the Uploading your local project to GitHub course to learn how to handle your case.


                      Your project is already on your local machine

                      Your project is already on your local machine

                      ✨ Terrific! @Baitula since you already have the project locally, you are almost ready to move it to GitHub.

                      But, this course guides you through the necessary steps to migrate your repository from another version control system unto GitHub. Since your project is already on your local machine, you need slightly different instructions. Please join the Uploading your local project to GitHub course to learn how to handle your case.


                      ⌨️ Activity: Next steps

                      Choose the drop-down below that best fits your current situation or for a printable version of the steps in this course, check out the Quick Reference Guide.

                      Using the GitHub Importer

                      Using the GitHub Importer

                      GitHub has a terrific import tool that will allow you to import your repository in just a few minutes.

                      First, let's make sure your repository 📖 is Git friendly. Close this issue and I will open a new issue with next steps.


                      Doing a clean cutover

                      Doing a clean cutover

                      To do a clean cutover, you will need to remove the existing history. Some people like to save a back up of the project with the history. To start the process:

                      1. Download a copy of the project to your local machine.
                      2. Remove version control (with Git this is as simple as running rm -rf .git inside the repository).
                      3. Now that your project is local on your machine and you have removed any history being tracked by Git, the remaining steps in this course largely cover migrating that Git history. Since you just removed that aspect of your project, please join the Uploading your local project to GitHub course to see the next steps to upload your local project to GitHub.

                      Migrating non-Git data

                      Migrating non-Git data

                      These migrations are more nuanced and outside the scope of this course. I recommend you go through these steps with a simple repository so you can learn best practices and then apply them to your more complex migration.

                      If you don't have a repository to use for this activity, you are welcome to use this one: https://github.com/githubtraining/github-move


                      Ready to move on?

                      Close this issue to signal you are finished with this step. I will open a new issue to show you how to optimize your repository for Git operations. 🎉


                      Watch below for my response

                      🤖 I'm waiting for you to close the issue before moving on.

                      Sometimes I respond too fast for the page to update! If you perform an expected action and don't see a response from me, wait a few seconds and refresh the page for your next steps.

                      Activity

                      Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

                      Metadata

                      Metadata

                      Assignees

                      No one assigned

                        Labels

                        No labels
                        No labels

                        Projects

                        No projects

                          Milestone

                          No milestone

                          Relationships

                          None yet

                          Development

                          No branches or pull requests

                          Issue actions

                          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
                          Skip to content

                          Plan the move #1

                          Description

                          @github-learning-lab

                          Step 1: Plan the migration

                          Migrating your repository to GitHub gives you the feature-rich tools and collaboration needed to elevate your project to the next level. This course will guide you through the necessary steps to migrate your repository from another version control system to GitHub.

                          I know some people like to get straight to the point while others like more information. For those who like more information, be sure to check out the drop-downs like this one ⬇️

                          Why move to GitHub?

                          Why move to GitHub?

                          You may be wondering what this GitHub thing is all about and why you should use it. If this sounds like you, here are a few reasons to make GitHub your project's new home:

                          • Version control — Everything on GitHub is stored in Git, the best version control system around. Version control allows you to experiment and make mistakes in code without messing up your final product.
                          • Keep your code in one place — Whether you work on multiple computers or just want to get some important projects off your computer, GitHub is the perfect place to store your projects online.
                          • Collaboration — Once your code is on GitHub, you can invite others to work on your code with you, share it with the world, or send a link to a friend to help you debug a problem.

                          Important considerations for migrations

                          If you are moving from another version control system such as Mercurial, Subversion, or another Git platform, you will need to make a few decisions:

                          1. Do you need all of the history?
                          2. Is there project data that lives outside of the history you need to preserve? (ex: Issues, Discussions, Pull Requests)

                          Should you keep all of the history?

                          If you are moving your project to GitHub as a public project, you may want to consider what is in your history. For example:

                          If ...Then ...
                          If you do want to keep the historyCheck out the Using the GitHub Importer section under Next steps.
                          If you do not want all of this historyWe recommend you do a clean cutover to "restart" version control and remove any unwanted history. If this sounds like the right option for you, check out the Doing a clean cutover section under Next steps.

                          Should you keep non-Git data?

                          Mapping users, keeping commit comments, and other data migrations are more complex, but not impossible. For most version control systems there are helpful Open Source 📖 tools available. Here are a few resources:

                          Other scenarios

                          Your project is on another site not using version control, such as CodePen or Glitch

                          Moving your project from another site not using version control

                          If you are moving your project from a site not using version control, such as CodePen or Glitch, the steps are a bit different that migrating your project from a source that is using version control. Because of this, we have a dedicated course for uploading your local project to GitHub. If this is your situation, please join the Uploading your local project to GitHub course to learn how to handle your case.


                          Your project is already on your local machine

                          Your project is already on your local machine

                          ✨ Terrific! @Baitula since you already have the project locally, you are almost ready to move it to GitHub.

                          But, this course guides you through the necessary steps to migrate your repository from another version control system unto GitHub. Since your project is already on your local machine, you need slightly different instructions. Please join the Uploading your local project to GitHub course to learn how to handle your case.


                          ⌨️ Activity: Next steps

                          Choose the drop-down below that best fits your current situation or for a printable version of the steps in this course, check out the Quick Reference Guide.

                          Using the GitHub Importer

                          Using the GitHub Importer

                          GitHub has a terrific import tool that will allow you to import your repository in just a few minutes.

                          First, let's make sure your repository 📖 is Git friendly. Close this issue and I will open a new issue with next steps.


                          Doing a clean cutover

                          Doing a clean cutover

                          To do a clean cutover, you will need to remove the existing history. Some people like to save a back up of the project with the history. To start the process:

                          1. Download a copy of the project to your local machine.
                          2. Remove version control (with Git this is as simple as running rm -rf .git inside the repository).
                          3. Now that your project is local on your machine and you have removed any history being tracked by Git, the remaining steps in this course largely cover migrating that Git history. Since you just removed that aspect of your project, please join the Uploading your local project to GitHub course to see the next steps to upload your local project to GitHub.

                          Migrating non-Git data

                          Migrating non-Git data

                          These migrations are more nuanced and outside the scope of this course. I recommend you go through these steps with a simple repository so you can learn best practices and then apply them to your more complex migration.

                          If you don't have a repository to use for this activity, you are welcome to use this one: https://github.com/githubtraining/github-move


                          Ready to move on?

                          Close this issue to signal you are finished with this step. I will open a new issue to show you how to optimize your repository for Git operations. 🎉


                          Watch below for my response

                          🤖 I'm waiting for you to close the issue before moving on.

                          Sometimes I respond too fast for the page to update! If you perform an expected action and don't see a response from me, wait a few seconds and refresh the page for your next steps.

                          Activity

                          Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

                          Metadata

                          Metadata

                          Assignees

                          No one assigned

                            Labels

                            No labels
                            No labels

                            Projects

                            No projects

                              Milestone

                              No milestone

                              Relationships

                              None yet

                              Development

                              No branches or pull requests

                              Issue actions

                              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
                              Skip to content

                              Plan the move #1

                              Description

                              @github-learning-lab

                              Step 1: Plan the migration

                              Migrating your repository to GitHub gives you the feature-rich tools and collaboration needed to elevate your project to the next level. This course will guide you through the necessary steps to migrate your repository from another version control system to GitHub.

                              I know some people like to get straight to the point while others like more information. For those who like more information, be sure to check out the drop-downs like this one ⬇️

                              Why move to GitHub?

                              Why move to GitHub?

                              You may be wondering what this GitHub thing is all about and why you should use it. If this sounds like you, here are a few reasons to make GitHub your project's new home:

                              • Version control — Everything on GitHub is stored in Git, the best version control system around. Version control allows you to experiment and make mistakes in code without messing up your final product.
                              • Keep your code in one place — Whether you work on multiple computers or just want to get some important projects off your computer, GitHub is the perfect place to store your projects online.
                              • Collaboration — Once your code is on GitHub, you can invite others to work on your code with you, share it with the world, or send a link to a friend to help you debug a problem.

                              Important considerations for migrations

                              If you are moving from another version control system such as Mercurial, Subversion, or another Git platform, you will need to make a few decisions:

                              1. Do you need all of the history?
                              2. Is there project data that lives outside of the history you need to preserve? (ex: Issues, Discussions, Pull Requests)

                              Should you keep all of the history?

                              If you are moving your project to GitHub as a public project, you may want to consider what is in your history. For example:

                              If ...Then ...
                              If you do want to keep the historyCheck out the Using the GitHub Importer section under Next steps.
                              If you do not want all of this historyWe recommend you do a clean cutover to "restart" version control and remove any unwanted history. If this sounds like the right option for you, check out the Doing a clean cutover section under Next steps.

                              Should you keep non-Git data?

                              Mapping users, keeping commit comments, and other data migrations are more complex, but not impossible. For most version control systems there are helpful Open Source 📖 tools available. Here are a few resources:

                              Other scenarios

                              Your project is on another site not using version control, such as CodePen or Glitch

                              Moving your project from another site not using version control

                              If you are moving your project from a site not using version control, such as CodePen or Glitch, the steps are a bit different that migrating your project from a source that is using version control. Because of this, we have a dedicated course for uploading your local project to GitHub. If this is your situation, please join the Uploading your local project to GitHub course to learn how to handle your case.


                              Your project is already on your local machine

                              Your project is already on your local machine

                              ✨ Terrific! @Baitula since you already have the project locally, you are almost ready to move it to GitHub.

                              But, this course guides you through the necessary steps to migrate your repository from another version control system unto GitHub. Since your project is already on your local machine, you need slightly different instructions. Please join the Uploading your local project to GitHub course to learn how to handle your case.


                              ⌨️ Activity: Next steps

                              Choose the drop-down below that best fits your current situation or for a printable version of the steps in this course, check out the Quick Reference Guide.

                              Using the GitHub Importer

                              Using the GitHub Importer

                              GitHub has a terrific import tool that will allow you to import your repository in just a few minutes.

                              First, let's make sure your repository 📖 is Git friendly. Close this issue and I will open a new issue with next steps.


                              Doing a clean cutover

                              Doing a clean cutover

                              To do a clean cutover, you will need to remove the existing history. Some people like to save a back up of the project with the history. To start the process:

                              1. Download a copy of the project to your local machine.
                              2. Remove version control (with Git this is as simple as running rm -rf .git inside the repository).
                              3. Now that your project is local on your machine and you have removed any history being tracked by Git, the remaining steps in this course largely cover migrating that Git history. Since you just removed that aspect of your project, please join the Uploading your local project to GitHub course to see the next steps to upload your local project to GitHub.

                              Migrating non-Git data

                              Migrating non-Git data

                              These migrations are more nuanced and outside the scope of this course. I recommend you go through these steps with a simple repository so you can learn best practices and then apply them to your more complex migration.

                              If you don't have a repository to use for this activity, you are welcome to use this one: https://github.com/githubtraining/github-move


                              Ready to move on?

                              Close this issue to signal you are finished with this step. I will open a new issue to show you how to optimize your repository for Git operations. 🎉


                              Watch below for my response

                              🤖 I'm waiting for you to close the issue before moving on.

                              Sometimes I respond too fast for the page to update! If you perform an expected action and don't see a response from me, wait a few seconds and refresh the page for your next steps.

                              Activity

                              Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

                              Metadata

                              Metadata

                              Assignees

                              No one assigned

                                Labels

                                No labels
                                No labels

                                Projects

                                No projects

                                  Milestone

                                  No milestone

                                  Relationships

                                  None yet

                                  Development

                                  No branches or pull requests

                                  Issue actions