I know similar questions have already been asked.
But, I believe my issue is due to a mistake I have previously made and therefore is different: let me explain.
Everything was working smoothly, as I could:
git add .
all the files from my local repository.
git commit -m "message here"
to add messages to my commits.
git push origin master
to upload my files to GitHub.
git push heroku master
to upload my files to Heroku.
However, at some point, I created a new branch locally called add-calendar-model
in case next steps of the app development would go south...
... which is exactly what happened.
However, despite many attempts, I did not manage to get the initial code — i.e. the code from before I created the new branch — from the master
branch to my local repository.
So, I decided to manually delete all the files from my local repository and git clone
my master
branch from GitHub.
This way, I got all my files back, but now, I cannot push any more to the remote repository.
Any time I try to run git push origin add-calendar-model
or git push origin master
, I get the following error:
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 am not very comfortable with Git and GitHub, as you may have guessed by now, and I have to admit that I have no clue about how to fix this.
Any idea?
First, check that your origin is set by running
git remote -v
This should show you all of the push / fetch remotes for the project.
If this returns with no output, skip to last code block.
Verify remote name / address
If this returns showing that you have remotes set, check that the name of the remote matches the remote you are using in your commands.
$git remote -v
myOrigin ssh://git@example.com:1234/myRepo.git (fetch)
myOrigin ssh://git@example.com:1234/myRepo.git (push)
# this will fail because `origin` is not set
$git push origin master
# you need to use
$git push myOrigin master
If you want to rename the remote or change the remote's URL, you'll want to first remove the old remote, and then add the correct one.
Remove the old remote
$git remote remove myOrigin
Add missing remote
You can then add in the proper remote using
$git remote add origin ssh://git@example.com:1234/myRepo.git
# this will now work as expected
$git push origin master
As Matt Clark stated above
However, origin might not be set, so skip the deleting step and simply attempting to add can clear this up.
git remote add origin <"clone">
Where "clone" is simply going into your GitHub repo and copying the "HTTPS clone URL" and pasting into GitBash
Make sure the config file at .git is correct...Check URL & Make sure your using the correct protocol for your keys
...ProjectWorkspace/.git/config
~Wrong url for git@bitbucket
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = gitbucket.org:Prezyack/project-one-hello.git
fetch = +refs/heads/*:refs/remotes/origin/*
~Wrong URL for SSH...
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = https://emmap1@bitbucket.org/emmap1/bitbucketspacestation.git
[branch "master"]
remote = origin
merge = refs/heads/master
We are looking at the URL...
e.g: For bitbucket, expect git@bitbucket.org....If its gitbucket.org. make the necessary changes..
SAVE
Try pushing again.
A similar error appears while pulling the changes from the origin.
If you are trying in Intellij from the menu options, the pull might not work directly.
Go to terminal and type this command and this should work out:
git pull origin master
Sometimes you don't have a local REF for pushing that branch back to the origin.
Try
git push origin master:master
This explicitly indicates which branch to push to (and from)