xkadmx / github-move Goto Github PK
View Code? Open in Web Editor NEWHome Page: https://lab.github.com/githubtraining/migrating-your-repository-to-github
Home Page: https://lab.github.com/githubtraining/migrating-your-repository-to-github
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 ⬇️
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:
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:
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 history | Check out the Using the GitHub Importer section under Next steps. |
If you do not want all of this history | We 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. |
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:
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.
✨ Terrific! @xkadmx 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.
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.
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.
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:
rm -rf .git
inside the repository).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
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. 🎉
🤖 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.
In general, there are two types of files: text files and binary files.
Text files, like most code files, are easily tracked with Git 📖 and are very lightweight.
However, binary files like spreadsheets, presentations with slides, and videos don't work well with Git. If your repository already has some of these files, it's best to have a plan in place before you enable Git version control.
You could choose to remove the binary files, or use another tool like git-lfs (Git Large File Storage). We won't get into detail on how to set up git-lfs in this course, but we will talk about .gitignore
files next, which are key to protecting your code from becoming bloated with binaries.
.gitignore
As we convert your project to a Git repository, it should only include the source code necessary to build or compile your project. In addition to avoiding binaries as we discussed above, you will also want to keep build artifacts out of your version controlled code.
To do this, you will create a file in your current project named .gitignore
. Git will use the .gitignore
to determine which files and directories should not be tracked under version control. The .gitignore
file is stored in your repository in order to share the ignore rules with any other users that interact with the repository.
Since the files to be ignored are dependent on the language you are using, the open source community has contributed some great templates for .gitignore
files in the github/gitignore
repository.
.gitignore
file. You can use a template or create your own.When you are finished, close this issue. I will open a new issue with the next steps. 🎉
🤖 I'm waiting for you to close this issue before moving on.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.