Bring a local folder to remote git repo

I have a folder with all my files set up for a project. I decided to use git on that folder, so I created on Github an empty repo. Usually the procedure is to clone on my local disk the remote repo, and in this case it will create an empty folder. But, what I want to do is to fill the remote repo with my project folder without harming and without moving it. Is there a procedure to do that?


Solution 1:

As hinted in GitHub help:

  1. Create a new repository on GitHub.

  2. Open Git Bash.

  3. Change the current working directory to your local project.

  4. Initialize the local directory as a Git repository.

     $ git init
    
  5. Add the files in your new local repository. This stages them for the first commit.

     $ git add .
    
  6. Commit the files that you've staged in your local repository.

     $ git commit -m "First commit"
    
  7. At the top of your GitHub repository's Quick Setup page, click to copy the remote repository URL.

  8. In the Command prompt, add the URL for the remote repository where your local repository will be pushed.

     $ git remote add origin <remote repository URL>
     # Sets the new remote
     $ git remote -v
     # Verifies the new remote URL
    
  9. Push the changes in your local repository to GitHub if there is a remote branch called master (or main if that's what you're using)

     $ git push origin master
    

    Otherwise you will have to name local branch first by

     $ git branch -m <new_name>
    

    and then push it to add a new branch called <new_name>

     $ git push origin -u <new_name>
    

If you still end up with errors like "Updates were rejected because the remote contains work that you do not have locally", this is normally because that the remote repo is recently created manually. Make sure you are not overwriting anything on the remote end before you force push local git folder to it using

$ git push origin -u -f <new_name>

Solution 2:

  1. Create a new repository on GitHub and note down it's clone path.

  2. Open any folder in computer and clone newly created repository using following command:

$ git clone <repository_clone_path>
  1. Open newly created folder and unhide the .git folder.

    • In Linux, you can use Ctrl+H shortcut
    • In Windows, you can use show hidden files option
  2. Move the .git folder to you local project folder(which you want to push to remote)

  3. Push the code to remote using standard commands:

$ git add .

$ git commit -m "Initial commit"

$ git push origin master

That's it. Your local branch is now linked to your remote branch.

Solution 3:

I think Ahmed's answer above is comprehensive. But, my solution is a bit shorter and less involved:

  1. Create a new repo on GitHub website. (And, copy the URL-to-your-new-repo.)

  2. Go inside your local folder and type in

    git remote add origin https://github.com/your-new-repo-URL.git

  1. git branch -M main
  1. git push -u origin main

What happens above is you are adding all your local files to the Master branch of your newly-created "remote" repo on GitHub.com.