讓 git 守護程式為我建立的儲存庫提供服務

讓 git 守護程式為我建立的儲存庫提供服務

我為此絞盡腦汁,得出了一個可能的結論,但沒有解決方案。首先,我的困境。

我有一個項目,可以透過程式設計建立儲存庫。我可以編輯儲存庫的描述,設定預設分支等等。這可以。

我還用於git daemon提供保存所有生成的存儲庫的資料夾。這就是問題所在。

我可以克隆存儲庫,但克隆的存儲庫的.git內容與原始存儲庫不匹配。

我唯一能想到的是當我創造這些儲存庫我正在使用系統的 git 進程,但是在克隆時我使用的是git daemons 進程...我什至不確定這是否有意義,而且我的搜尋時間沒有發現任何結果。

作為參考,這是我運行的激活命令git daemon

git daemon --reuseaddr --port=9999 --base-path=/Users/me/repos/ --export-all --verbose --enable=receive-pack --informative-errors --detach

以下是克隆命令的範例:

git clone git://localhost:9999/me/test18.git

以下是我創建存儲庫時運行的命令:

git init
git remote add origin git://localhost:9999/me/repo.git
git symbolic-ref HEAD refs/heads/magic
# more stuff

這些東西有效,我只需git daemon要按原樣提供我的存儲庫。


.git/config這是我創建的存儲庫中的內容範例:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = git://localhost:9999/me/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "coolerbranch"]
    remote = origin
    merge = refs/heads/coolerbranch

這是克隆的相同儲存庫:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = git://localhost:9999/me/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master

正如您所看到的,該[branch ...]部分不匹配。


相反,如果還有其他git daemon我還沒找到的,我很想聽聽。幾年前,Github 一直在獨立工作,但後來放棄了。

另外,我最初在 SO 上發布了這個問題,但在其他 SE 網站上進一步搜索後,我意識到 SF 有更多git-daemon類似的問題。


@Zoredache

克隆儲存庫不會複製配置。配置主要是電腦、使用者或目錄的本機配置。

如果沒有這些知識,我假設有一種方法可以讓 git 在克隆時同步初始配置。 Git 的預設設定不能由伺服器覆蓋,只能由使用者覆蓋。

也許有一天 git 會允許這個選項,但很可能不會。呃,好吧。

答案1

我認為克隆的 .git 不應與伺服器 .git 內容相符。對於設定伺服器,我建議您按照書中的說明進行操作https://git-scm.com/book/en/v2/Git-on-the-Server-Getting-Git-on-a-Server

相關內容