git push not send changes to remote git repository

GitPush

Git Problem Overview


I am making changes to some file in my local git repository and then want to send the changes to the remote git repository from which the local was cloned via ssh.

After run "git commit -a" on my local side, to send the changes to the remote, I run

$ git push
Everything up-to-date

However I checked the remote files and they are not changed! Any idea?

Thanks and regards!

Git Solutions


Solution 1 - Git

Have you tried the following?

 $ git push origin master:master

Use git remote to find out the name(s) of your remote(s). The default remote is origin, which is automatically created when cloning a repository.

Solution 2 - Git

I found that the issue was that I had not added the files to the update as well as a message. I fixed this by using the following commands:

git add .

and then

git commit -m "updates done by..."

and then

git push origin <repo_name>

Hope this helps someone ;)

Solution 3 - Git

You probably pushed into a non-bare repository, i.e. a repository that has a working copy attached to it. You shouldn’t have ignored the warning git push gives you if it notices that this is the case.

Anyway, log in to the remote machine, change to the repository and do

git checkout <whatever branch you’re on>

There you go. Next time only push into bare repositories. :)

Solution 4 - Git

I had the same issue and it was because I had checked out to a point in the history (in this case a tag), rather than the end (head) of any branch or master. I would make the change and commit which would succeed and I would see the changes in my local history. When I ran git push, git stated everything was fine, but the change had not actually been submitted to the server (which can be seen by checking the logs, or by re-cloning the repo and checking it's logs). The best symptom of this mistake is seeing the message "Head detatched from ____"

The Solution

What one actually needs to do (if you have done what I've done) is create a new line of development by creating a branch and switching to that branch before making the changes.

git branch [a new branch name]
git checkout [a new branch name]  

Then after committing the changes, if you want the changes to be pushed to the server you need to push the branch itself to the server.

git push -u origin [local branch name]

Now if you clone the repository, you should see your changes in the logs. However, next time you clone the repository, to be able to go to that point you just changed, you will need to checkout that branch, as you will default to being on the main line which is "further" down the development line from where you branched off.

git checkout [branch name]  

Solution 5 - Git

git commit --amend

Will change the commit ID and make the remote repository "think" new changes has been made.

Solution 6 - Git

I suggest you look into using gitosis for hosting those git bare repositories. It's really easy to use after the initial setup.

Solution 7 - Git

type "git log" in your remote repository to see if it contains the newest commit. If not, you should check the configuration of you local repository to see the remote settings.

To see the changes in different type of your remote repository:

A. If your remote repository is bare, you can find the files in the remote repository branches/ config description HEAD hooks/ info/ objects/ refs/

after new commit is pushed, files in objects/ directory would changed.

B. If your remote repository is non-bare, type "git checkout master" And "git status" in your remote repository to see the file status. See if some file has been modified or deleted.

Solution 8 - Git

None of these solutions worked for me, and the commits would appear on my live website only after running GIT_WORK_TREE=/path/to/website git checkout -f. If this is your case you have to add a "hook" to your git configuration.

  1. Go to your the hooks folder inside your git folder:

    cd ~/path/.git

    cd hooks

    nano post-receive

  2. Write this line in the post-receive file:

    GIT_WORK_TREE=/path/to/your/website/or/project/ git checkout -f

  3. Lastly, you have to modify the permissions of the post-receive file:

    chmod a+x post-receive

This will execute that command every time you push, updating your commits on your remote project.

Solution 9 - Git

Well, this is what worked for me

git stash

git pull

git add .

git commit -m "commit message"

git push

Solution 10 - Git

I had precisely the same problem as a new git/github user. You have to write this into the command line:

git push -u origin master

That should fix your issue.

Solution 11 - Git

One other issue could be that while you might have used

> git add your-dirs

You have to remember to commit the files within directories

> git commit -m'Add your message' your-dir/*

Then add a git push in order to push it to your remote

Solution 12 - Git

I just experienced a similarly frustrating occurrence of not seeing my change replicated on github. As a new git user, just getting used to the using the system, I created a folder on my computer, added it, committed it, pushed it - no change. I considered the possibility that I cannot push an empty directory, so I created an empty file in the directory and then repeated the above steps. All better, the change was instantly mirrored in my github repo.

Solution 13 - Git

One solution is remove the remote and re-insert it, just to reset your local tree and presettings. This issue happens with me when I move folders manually.

To remove yours remotes:

$ git stash

Then:

$ git remote rm <REMOTE NAME> 

i.e. git remote rm origin.

Add again your remote:

$ git remote add origin <URL>

Solution 14 - Git

I was facing the same issue and I tried several things none of which worked.

In the end, I added one dummy commit and again pushed the changes and now I can see both (previous one and dummy one) on GitHub remote repository.

Solution 15 - Git

Sometimes it just happens due to loading issues. Try opening the link from the branch menu directly in another new tab. This worked for me.

Solution 16 - Git

Since i had a similar issue on CentoS 7 with NetworkManager. Pinging the git server gave a response, connecting with netcat (nc) also gave a response, even trying to connect with ssh worked. But the git command just kept on hanging.

In the end it turns out that instead of using NetworkManager and its DNS settings to resolve the git server an entry in /etc/hosts pointed to a wrong ip address which was not reachable.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionTimView Question on Stackoverflow
Solution 1 - GitknittlView Answer on Stackoverflow
Solution 2 - GitHerbertView Answer on Stackoverflow
Solution 3 - GitBombeView Answer on Stackoverflow
Solution 4 - GitProgramsterView Answer on Stackoverflow
Solution 5 - GitNir DuanView Answer on Stackoverflow
Solution 6 - GitLuisView Answer on Stackoverflow
Solution 7 - GitChen-Han HsiaoView Answer on Stackoverflow
Solution 8 - GitFernando Irarrázaval GView Answer on Stackoverflow
Solution 9 - GitDalin OluochView Answer on Stackoverflow
Solution 10 - GitbeginnerJavaScriptView Answer on Stackoverflow
Solution 11 - GitshaneonabikeView Answer on Stackoverflow
Solution 12 - Gituser6614905View Answer on Stackoverflow
Solution 13 - GitJessé FilhoView Answer on Stackoverflow
Solution 14 - GitNaresh JoshiView Answer on Stackoverflow
Solution 15 - GitArghya BhattacharyaView Answer on Stackoverflow
Solution 16 - GitRiccardo B.View Answer on Stackoverflow