54

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?

5 Answers 5

93

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>
3
  • 1
    Thanks. I followed your procedure, but at step 9 I got this error: ! [rejected] master -> master (non-fast-forward) It says I have to use git pull first, I did, but I got the following: There is no tracking information for the current branch. Please specify which branch you want to merge with. Anyway, I'm scared that this "git pull" could overwrite my current dir. Am I missing something?
    – user840718
    Mar 7, 2019 at 11:21
  • 1
    It seems you have already some files on the remote repository. If you don't care about the remove one, then please read stackoverflow.com/questions/5509543/…, or you can pull your remote data to an empty local folder, copy to it what you want, then push Mar 7, 2019 at 11:25
  • 2
    It worked with the --force option. Thanks.
    – user840718
    Mar 7, 2019 at 11:36
6
  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.

  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.

1
1

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.

0

This was the sequence that did it for me:

On the local folder which you want to push, do:

git init

Add all files (incl. subdirectories) with:

git add .

Commit with your message using -m:

git commit -m "bring on the code"

Now things are set in your local git repo. You need to link it to the repo on GitHub using:

git remote add origin https://(the cloning URL).git

Next is to link your local master branch with the remote master branch:

git branch --set-upstream-to=origin/master master

Pull any files in the remote repo (e.g., new repo with a README.md) with:

git pull origin master --allow-unrelated-histories

The 'allow unrelated histories' is needed because the local and remote branch did not have a common history yet.

Now you can git push and everything is normal :)

0

Open "Git Bash here" at your project local.

git init                              // init git local at your project
git remote add origin <your_git_repo_ulr>   // link your git local to git online
git remote -v                        // verify whether a new remote is created
git status                                // verify the branch you are standing, as usually is "master"
git add .                            // stage all current files in your project
git commit -m "Fist commit"               // commit all staged files with message
git push origin master              // push your commit to reposity

Now your project has done set up the repository without any moving files.

1
  • Avoid posting answers to old questions that already have well received answers unless you have something substantial and new to add.
    – Toto
    Sep 1, 2022 at 11:42

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .