我昨天问了这个问题,但没有问我的问题,所以没有人能够提供帮助。所以我会再试一次。
我添加了一个回购
mkdir test
cd test
git init
git remote add origin git@bitbucket.org:user/test.git
git add .
git commit -m "initial"
git push origin master
我ssh到我的网络服务器和git clone
git clone git@bitbucket.org:user/test.git
cd test
我在服务器中设置我的钩子,添加git checkout然后授予文件权限
git config receive.denyCurrentBranch ignore
vim .git/hooks/post-recieve
GIT_WORK_TREE=../ git checkout -f
chmod +x .git/hooks/post-recieve
我将ssh添加到服务器授权密钥中。
然后我从本地添加远程服务器
git remote add test user@server.com:test
在git remote -v上我得到
test user@server.com:test (fetch)
test user@server.com:test (push)
origin git@bitbucket.org:user/test.git (fetch)
origin git@bitbucket.org:user/test.git (push)
然后我添加了一个文件
touch test.php
git add test.php
git commit -m "test page"
git push origin master
然后我推送到服务器
git push test master
在服务器中,当ls -l我只获得一个文件index.php 当我做git状态时,我得到
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
# (use "git push" to publish your local commits)
#
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# deleted: test.php
#
然后我必须运行git stash来获取所有文件。
所以头部处于正确的位置。它已经恢复了test.php文件,但后来删除了它?
答案 0 :(得分:-1)
绝对愚蠢,昨天浪费了整整一天试图解决这个问题,这是一个愚蠢的错字。
vim .git/hooks/post-recieve
拼写错误
vim .git/hooks/post-receive
我只是要杀了我自己。