Reputation: 4696
I've a repository moodle
on my Github account which I forked
from the official repository.
I then cloned it on my local machine. It worked fine. I created several branches (under the master
branch). I made several commits and it worked fine.
I don't know how I'm getting the following error when I do : git push origin master
fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
How do I resolve the error without effecting my repository on Github?
I'm using Ubuntu 12.10
The contents of my .git/config
after doing cat $(git rev-parse --show-toplevel)/.git/config
gives:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[branch "master"]
[branch "MOODLE_23_STABLE"]
[branch "MOODLE_24_STABLE"]
[remote "upstream"]
url = git://git.moodle.org/moodle.git
fetch = +refs/heads/*:refs/remotes/upstream/*
Upvotes: 146
Views: 395548
Reputation: 169
in my case I had a typo when running 'git remote add origin ...'
Upvotes: 0
Reputation: 481
For me it was a RAM issue in the WSL. I had to restart WSL to make it work again. In the command prompt:
wsl --shutdown
Upvotes: 0
Reputation: 2797
I had the same error and solved it by editing .git/config
in my repo to include:
[branch "master"]
remote = origin
merge = refs/heads/master
at the end of the file.
Upvotes: 0
Reputation: 1101
My issue was related to the way I cloned the repo. Github gave a colon before the user name, for example:
[email protected]:usernmame/reponame.git
The command git remote -v
showed this:
origin [email protected]:usernmame/reponame.git (fetch)
origin [email protected]:usernmame/reponame.git (push)
Everything matched what Github was telling me, so I was confused why I was getting following error when I tried to push a new branch upstream:
fatal: 'reponame' does not appear to be a git repository
Then I realized it was because my origin was pointing to the wrong upstream because of the colon in the URL
git remote set-url origin ssh://[email protected]/username/reponame.git
Now I can push the new branch.
Update
I have found that after doing this I was no longer able to push any changes. I had to reset the origin back to the URL with the colon in order pushes to work.
git remote set-url origin [email protected]:usernmame/reponame.git
So I would say that this is a work around and not a proper solution.
Upvotes: 2
Reputation: 678
100% works.
First of first make sure that there is no hidden git folder inside your project root and delete it if there is one. Then open a command shell and execute the following commands:
git init -b main
git add . //This is very important and it adds the files in the local repository and stages them for commit.
git commit -m "First commit"
git remote add origin <REMOTE_URL> //REMOTE_URL: the repository address in github.com
git remote -v //Verifies the new remote URL
git push origin main
and that's it. You can also read more about this in GitHub documentation
Upvotes: 3
Reputation: 81
I had the same issue and solved it by checking
git remote -v
git init the repo URL
git remote add origin the repo URL
git push -f origin master
Upvotes: 8
Reputation: 2386
Try to create remote origin first, maybe is missing because you change name of the remote repo
git remote add origin URL_TO_YOUR_REPO
Upvotes: 7
Reputation: 69025
I faced the same problem when I renamed my repository on GitHub. I tried to push at which point I got the error
fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
I had to change the URL using
git remote set-url origin ssh://[email protected]/username/newRepoName.git
After this all commands started working fine. You can check the change by using
git remote -v
In my case after successfull change it showed correct renamed repo in URL
[aniket@alok Android]$ git remote -v
origin ssh://[email protected]/aniket91/TicTacToe.git (fetch)
origin ssh://[email protected]/aniket91/TicTacToe.git (push)
Upvotes: 33
Reputation: 11144
It is possible the other branch you try to pull from is out of synch; so before adding and removing remote try to (if you are trying to pull from master)
git pull origin master
for me that simple call solved those error messages:
Upvotes: 19
Reputation: 10181
I had the same error on git pull origin branchname when setting the remote origin as path fs and not ssh in .git/config:
fatal: '/path/to/repo.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
It was like so (this only works for users on same server of git that have access to git):
url = file:///path/to/repo.git/
Fixed it like so (this works on all users that have access to git user (ssh authorizes_keys or password)):
url = [email protected]:path/to/repo.git
the reason I had it as a directory path was because the git files are on the same server.
Upvotes: 1
Reputation: 325
This does not answer your question, but I faced a similar error message but due to a different reason. Allow me to make my post for the sake of information collection.
I have a git repo on a network drive. Let's call this network drive RAID. I cloned this repo on my local machine (LOCAL) and on my number crunching cluster (CRUNCHER). For convenience I mounted the user directory of my account on CRUNCHER on my local machine. So, I can manipulate files on CRUNCHER without the need to do the work in an SSH terminal.
Today, I was modifying files in the repo on CRUNCHER via my local machine. At some point I decided to commit the files, so a did a commit. Adding the modified files and doing the commit worked as I expected, but when I called git push
I got an error message similar to the one posted in the question.
The reason was, that I called push
from within the repo on CRUNCHER on LOCAL. So, all paths in the config file were plain wrong.
When I realized my fault, I logged onto CRUNCHER via Terminal and was able to push the commit.
Feel free to comment if my explanation can't be understood, or you find my post superfluous.
Upvotes: 2
Reputation: 1329092
$HOME/.gitconfig
is your global config for git.
There are three levels of config files.
cat $(git rev-parse --show-toplevel)/.git/config
(mentioned by bereal) is your local config, local to the repo you have cloned.
you can also type from within your repo:
git remote -v
And see if there is any remote named 'origin' listed in it.
If not, if that remote (which is created by default when cloning a repo) is missing, you can add it again:
git remote add origin url/to/your/fork
The OP mentions:
Doing
git remote -v
gives:
upstream git://git.moodle.org/moodle.git (fetch)
upstream git://git.moodle.org/moodle.git (push)
So 'origin
' is missing: the reference to your fork.
See "What is the difference between origin
and upstream
in github"
Upvotes: 166