gpt4 book ai didi

git push 不更新远程服务器上的文件

转载 作者:太空狗 更新时间:2023-10-29 13:30:58 25 4
gpt4 key购买 nike

我在本地机器上设置了一个 git 存储库,在 linode 机器上设置了一个裸存储库。执行 git push 时没有错误,但我没有在远程服务器上看到该文件。我遵循的命令顺序如下:

在远程:

abhijat@kangaroo:~$ mkdir dev
abhijat@kangaroo:~$ cd dev && git init --bare

在本地机器上:

krypton:test abhijat$ git init
krypton:test abhijat$ vim app.py
krypton:test abhijat$ git init
Initialized empty Git repository in /Users/abhijat/dev/test/.git/
krypton:test abhijat$ git add .
krypton:test abhijat$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: app.py
#
krypton:test abhijat$ git commit -m 'test first commit'
[master (root-commit) 3bee148] test first commit
1 files changed, 16 insertions(+), 0 deletions(-)
create mode 100644 app.py
krypton:test abhijat$ git remote add origin abhijat@linode:~/dev
krypton:test abhijat$ git push -v origin master
Pushing to abhijat@linode:~/dev
Counting objects: 2, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 298 bytes, done.
Total 2 (delta 1), reused 0 (delta 0)
To abhijat@linode:~/dev
01a0e08..2273564 master -> master

但是当我检查 linode 时,文件不存在:

abhijat@kangaroo:~/dev$ ls -ltr
total 32
drwxr-xr-x 4 abhijat abhijat 4096 Sep 8 10:17 refs
drwxr-xr-x 2 abhijat abhijat 4096 Sep 8 10:17 info
drwxr-xr-x 2 abhijat abhijat 4096 Sep 8 10:17 hooks
-rw-r--r-- 1 abhijat abhijat 73 Sep 8 10:17 description
drwxr-xr-x 2 abhijat abhijat 4096 Sep 8 10:17 branches
-rw-r--r-- 1 abhijat abhijat 23 Sep 8 10:17 HEAD
-rw-r--r-- 1 abhijat abhijat 66 Sep 8 10:57 config
drwxr-xr-x 12 abhijat abhijat 4096 Sep 8 11:03 objects
abhijat@kangaroo:~/dev$ find . -name app.py
abhijat@kangaroo:~/dev$

我在这里遗漏了什么明显的东西吗?通信是通过 ssh 进行的, key 已按预期设置,我可以不用密码登录。但是,该文件不会被复制到远程服务器。

谢谢

最佳答案

如果您既要推送到存储库又要更新文件,您可以创建一个服务器端 git Hook ,以便在文件推送后 checkout 文件。在服务器端 git /hooks/ 目录中创建一个名为post-receive 的文件并添加以下代码:

#!/bin/sh
git --work-tree=/var/www/domain.com --git-dir=/var/repo/site.git checkout -f

然后使用 chmod +x post-receive 给文件适当的权限

注意:以上代码假定您的 git 目录和部署的文件位于不同的目录中。根据您希望的配置方式更新文件。

更多信息和详细解释在这里: https://www.digitalocean.com/community/tutorials/how-to-set-up-automatic-deployment-with-git-with-a-vps

关于git push 不更新远程服务器上的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12330174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com