Git推送到远程不更新文件

时间:2016-10-16 14:39:30

标签: git github git-push git-remote

我有一个git repo设置有两个遥控器ORIGIN和WEB都是裸的。

当推送到ORIGIN时,推送完成后,日志显示提交并更新文件。

当推送到WEB时,推送完成(后续推送说一切都是最新的)。 Web远程登录显示提交成功,但根据提交没有修改任何文件。

可能会出现什么问题?

编辑1 - 按要求发出命令和回复

local$  git branch
* master

remote$ git branch
* master


local$ git add newfile
local$ git commit -m "added newfile"

[master 591680a] added newfile
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 public_html/newfile


local$ git push web master

Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 324 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
To ssh://user@myhost/home/user
c5b7713..591680a  master -> master


remote$ git log

commit 591680a73fdf535c44031cca545b2a47e8421fac
Author: Matthew Slight <matthew@slight.me>
Date:   Mon Oct 17 06:24:10 2016 +0400

added newfile


remote$ ls newfile

No such file or directory

谢谢, 马修

3 个答案:

答案 0 :(得分:0)

您可能想尝试指定所涉及的分支,例如

$ git push web HEAD:master

(正在推送到遥控器的分支master

答案 1 :(得分:0)

确保您已拉动遥控器上的右侧分支:

git checkout master
git pull
git status

在执行git log时,请尝试使用git log --decorate,这也将显示分支引用。

答案 2 :(得分:0)

实际上,不建议以这种方式使用远程git repo。 首先,在远程PC(服务器)上,您应该使用

初始化一个裸git repo

git init --bare

,然后在服务器等其他目录上为存储库设置工作场所。google git init --bare的用法

但是,如果您确实想以这种方式工作,我认为这会有所帮助:

https://git-annex.branchable.com/tips/making_a_remote_repo_update_when_changes_are_pushed_to_it/