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
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
master
(ormain
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>
-
1Thanks. 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? Mar 7, 2019 at 11:21
-
1It 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
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
.git
folder.- In Linux, you can use Ctrl+H shortcut
- In Windows, you can use show hidden files option
Move the
.git
folder 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.
-
nowdays the procedure is git remote add origin git@your_repository_addresse before the push as explained here : digitalocean.com/community/tutorials/… Apr 21, 2021 at 0:44
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:
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 :)
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.
-
Avoid posting answers to old questions that already have well received answers unless you have something substantial and new to add.– TotoSep 1, 2022 at 11:42