我有一个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
谢谢, 马修
答案 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 repogit init --bare
,然后在服务器等其他目录上为存储库设置工作场所。google git init --bare的用法
但是,如果您确实想以这种方式工作,我认为这会有所帮助:
https://git-annex.branchable.com/tips/making_a_remote_repo_update_when_changes_are_pushed_to_it/