Git

推送有效,但遠端儲存庫沒有更改

  • March 15, 2019

我在 /var/www/example.com/html 目錄中的 Debian Stretch 伺服器上託管了一個 git 伺服器。

如果我首先通過在 Windows 10 本地電腦上執行此操作複製 git repo,我可以將文件推送到本地電腦上的此伺服器:

C:\Users\User\Desktop\AnotherRepoTest\test>git clone git@IP_Of_Remote_server:/var/www/example.com/html/repo.git
Cloning into 'repo'...
git@IP_Of_Remote_server's password:
remote: Counting objects: 20, done.
Receiving objects: 100% (20/20), 2.30 KiB | 1.15 MiB/s, done.
remote: Compressing objects:  75% (9/12)   Resolving deltas: 100% (4/4), done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 20 (delta 4), reused 0 (delta 0)

C:\Users\User\Desktop\AnotherRepoTest\test>

這有效,它從 repo 獲取文件,但是如果我創建一個新文件然後將該文件推送到 master 分支,遠端伺服器將不會在遠端 repo 目錄中顯示這個新文件。

C:\Users\User\Desktop\AnotherRepoTest\test>cd repo

C:\Users\User\Desktop\AnotherRepoTest\test\repo>echo "Hello, world." > AddThisFile.txt

C:\Users\User\Desktop\AnotherRepoTest\test\repo>git add --all

C:\Users\User\Desktop\AnotherRepoTest\test\repo>git commit -m "New Commit"
[master e5a21b6] New Commit
1 file changed, 1 insertion(+)
create mode 100644 AddThisFile.txt

C:\Users\User\Desktop\AnotherRepoTest\test\repo>git push -u origin master
git@IP_Of_Remote_server's password:
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 292 bytes | 292.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
To IP_Of_Remote_server:/var/www/example.com/html/repo.git
  78da987..e5a21b6  master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

C:\Users\User\Desktop\AnotherRepoTest\test\repo>

如您所見,一切都按預期進行。現在,如果我們檢查遠端伺服器 repo 目錄,這個新的文本文件不會添加到 /var/www/example.com/html/

但是如果我在本地機器上的另一個文件夾中再次複製 repo,這個文本文件將被複製。

所以問題是我無法在遠端目錄上找到這個文件。即使我跑步:

root@ohwell:/var/www# locate AddThisFile.txt
root@ohwell:/var/www#

我只給了 git 使用者 git-shell 訪問權限,並且對 /var/www 目錄具有正確的權限。我什至重新啟動了伺服器以查看是否有更改,但沒有運氣。為什麼我無法在遠端伺服器上找到這個文件?我錯過了什麼?

我按照這些教程設置了一個裸倉庫:

https://www.linux.com/learn/how-run-your-own-git-server

https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server

  • 定位使用可能不會更新的數據庫
  • 在將更改推送到儲存庫後,您需要讓伺服器以某種方式拉取更改。

引用自:https://serverfault.com/questions/958420