I created a new repository online at github, where i have an account. The project is at, say:
https://github.com/myname/myproject
Now I want to add, commit and push things to that project from my file system. So I opened the terminal on Ubuntu, went to the directory that I want to make into a git folder and typed git init
~/myfolder$ git init
then I typed
~/myfolder$ git clone [email protected]:myname/myproject.git
then I typed git status, to find that a whole lot of files are untracked. So I added one of them, like
~/myfolder/mysubfolder$ git add subfolderfile.txt
I even committed by
~/myfolder/mysubfolder$ git commit -m "Some comment"
but then pushing it
~/myfolder/mysubfolder$ git push origin master
gives
fatal: 'origin' does not appear to be a git repository fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
I read other questions on this forum but my level of coding sophistication is that of your average grandma, so I tried
$ git remote set-url origin [email protected]:myname/myproject.git
but that didn't work: No such remote 'origin'. I am really at a loss. Please explain in greatgrandpa style what I need to do. Prior knowledge=0. E.g I'd prefer "the big black window" over the Terminal or else I'd be very happy to have a brief explanation of what it is. Thanks so much.
The issue here is almost certainly caused by you running git init
first and then cloning your project into the same directory using the git clone
command. And even if you can fix the issue by adding the remote to the empty repository that you initialized on your machine, you don't want to do that because you will then have two git repositories, one nested inside the other.
Because of the above, if you don't have any valuable changes in the project on your local machine, it would make things more simple to just blow away all the contents of your ~/myfolder/
dir and re-clone the project by doing the following:
rm -rf ~/myfolder
git clone [email protected]:myname/myproject.git ~/myfolder
If you have changes that you want to preserve in your project located at ~/myfolder/mysubfolder
, then we can just move stuff around to make sure that you don't lose anything. I would recommend first that you do the following to get rid of the nesting:
cd ~/myfolder
rm -rf .git
mv mysubfolder/* .
At this point, you should have all of your project's files and .git
folder the mysubfolder/
directory. Which you can check with ls -al
Next we want to check that you have a remote repository properly configured. To do so, run the command git remote -v
hopefully you will see the following output:
origin [email protected]:myname/myproject.git (fetch)
origin [email protected]:myname/myproject.git (push)
If you don't see the output above, don't have any fear, quick fix. Just run the command:
git remote add origin [email protected]:myname/myproject.git
At this point we have a reasonable directory structure and the remote repository properly configured for you. Now it's a matter of having access to that remote repository. Since the way you set it up originally was over ssh, the best option, and that's what I've shown you how to do so far, we are going to continue down that path.
First we need to check that you do have a keypair, so do the following:
cd ~/.ssh
ls
If you have a keypair then I would expect to see the two files id_rsa
and id_rsa.pub
. If you don't have those files (although sometimes they are named differently), then do the following
ssh-keygen -t rsa
ls
Now you should have those files. id_rsa
is your private key, which you don't want to leave your computer and should never be shared with anyone, but id_rsa.pub
is you public key, which is a way that other people and services know how to identify you. We need to make sure that your github account has you public key id_rsa.pub
added to it. So now do the following:
id_rsa.pub
Now you should have no trouble at all push and pulling from your remote repository.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With