git push not send changes to remote git repository

2019-01-16 23:48发布

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 push
10条回答
孤傲高冷的网名
2楼-- · 2019-01-16 23:51

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

查看更多
一纸荒年 Trace。
3楼-- · 2019-01-16 23:53

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

查看更多
不美不萌又怎样
4楼-- · 2019-01-16 23:57

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.

查看更多
冷血范
5楼-- · 2019-01-17 00:03

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]  
查看更多
来,给爷笑一个
6楼-- · 2019-01-17 00:05

have you tried the following?

 $ git push origin master:master
查看更多
闹够了就滚
7楼-- · 2019-01-17 00:06

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. :)

查看更多
登录 后发表回答