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?
As hinted in GitHub help:
Create a new repository on GitHub.
Open Git Bash.
Change the current working directory to your local project.
Initialize the local directory as a Git repository.
$ git init
Add the files in your new local repository. This stages them for the first commit.
$ git add .
Commit the files that you've staged in your local repository.
$ git commit -m "First commit"
At the top of your GitHub repository's Quick Setup page, click to copy the remote repository URL.
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
Push the changes in your local repository to GitHub if there is a remote branch called
mainif 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>
Create a new repository on GitHub and note down it's clone path.
Open any folder in computer and clone newly created repository using following command:
$ git clone <repository_clone_path>
Open newly created folder and unhide the
- In Linux, you can use Ctrl+H shortcut
- In Windows, you can use show hidden files option
.gitfolder to you local project folder(which you want to push to remote)
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.
I think Ahmed's answer above is comprehensive. But, my solution is a bit shorter and less involved:
Create a new repo on GitHub website. (And, copy the URL-to-your-new-repo.)
Go inside your local folder and type in
git remote add origin https://github.com/your-new-repo-URL.git
git branch -M main
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.
This was the sequence that did it for me:
On the local folder which you want to push, do:
Add all files (incl. subdirectories) with:
git add .
Commit with your message using
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 :)