我.git在本地计算机上的目录中设置.然后我跑:
mkdir a cd a git init git daemon
当我尝试克隆存储库时a,我收到以下错误:
mkdir b cd b git clone git://127.0.0.1 Initialized empty Git repository in /b/127.0.0.1/.git/ fatal: The remote end hung up unexpectedly
如何通过git协议克隆我的存储库?
我正在使用以下命令运行git守护程序.
c:\cygwin\bin\git daemon --reuseaddr --base-path=/cygdrive/S --export-all --verbose --enable=receive-pack
Run Code Online (Sandbox Code Playgroud)
我能够克隆并提取更新,但是当我尝试推送时,我得到了
$ git push origin master
Counting objects: 6, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (6/6)
Run Code Online (Sandbox Code Playgroud)
然后它挂了
我目前正在使用git版本1.7.0.4
让我们立刻从pre-receive我已经写过的一个钩子开始:
#!/bin/sh
##
format_bold='\033[1m'
format_red='\033[31m'
format_yellow='\033[33m'
format_normal='\033[0m'
##
format_error="${format_bold}${format_red}%s${format_normal}"
format_warning="${format_bold}${format_yellow}%s${format_normal}"
##
stdout() {
format="${1}"
shift
printf "${format}" "${@}"
}
##
stderr() {
stdout "${@}" 1>&2
}
##
output() {
format="${1}"
shift
stdout "${format}\n" "${@}"
}
##
error() {
format="${1}"
shift
stderr "${format_error}: ${format}\n" 'error' "${@}"
}
##
warning() {
format="${1}"
shift
stdout "${format_warning}: ${format}\n" 'warning' "${@}"
}
##
die() {
error "${@}"
exit 1
}
##
git() {
command git --no-pager "${@}"
}
##
list() {
git rev-list …Run Code Online (Sandbox Code Playgroud) 我在Windows上使用git版本2.12.2.我在git bash shell中运行了以下命令:
$ git daemon --reuseaddr --verbose --informative-errors --base-path=/c/ /c/
Run Code Online (Sandbox Code Playgroud)
在另一个git bash shell上,在服务的同一台机器上,我尝试git://<host>/foo.git从测试仓库推送到:
[2236] unable to set SO_KEEPALIVE on socket: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我能做些什么才能SO_KEEPALIVE成功设置?
什么是git-daemon?它是默认的git函数吗?我试图理解这一点,以便我可以在人们可以推/拉的服务器上托管存储库.
到目前为止,我能够将"--bare"存储库克隆到Apache服务器上,然后使用"update-server-info"将存储库克隆到其他协作者.但是,这不会让协作者将他们的提交推送到"--bare"存储库.
我在"--bare"存储库中创建了"git-daemon-export-ok"文件,然后运行命令:"git-daemon --verbose/git"但是我收到一个错误:"git-daemon:command not not找到."
任何帮助,将不胜感激.
我正在尝试使用我的OS X桌面设置内部git服务器(主要作为测试用例).当涉及SSH密钥时,一切正常,但我目前正在尝试使用git-daemon进行只读克隆.如果我在终端中启动git-daemon:
sudo -u git git-daemon --basepath=/Users/git/repos/ --export-all
Run Code Online (Sandbox Code Playgroud)
然后一切正常,例如
git clone git://localhost/My_Project.git
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用launchd进行设置时,它会拒绝所有请求.我正在使用这个plist文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>git</string>
<key>UserName</key>
<string>git</string>
<key>OnDemand</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/path/to/git-daemon</string>
<string>--base-path=/Users/git/repos/</string>
<string>--export-all</string>
</array>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
如果我尝试克隆My_Project,则会收到以下错误:
Cloning into My_Project...
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
令人沮丧的是,我相信这曾经有用,所以问题可能与我的plist文件或者launchd的使用关系不大,而且更多的是做任何可能已经改变的网络设置.任何建议将不胜感激.
抱歉,如果这更像是一个系统管理员问题,但我认为开发人员可能会有一些经验.
更新:如果存在repo,控制台将报告以下错误:
git[431]
error: cannot run upload-pack: No such file or directory
Run Code Online (Sandbox Code Playgroud) 我正在分享我的存储库
Linux nozim-desktop 2.6.32-24-generic #43-Ubuntu SMP Thu Sep 16 14:17:33 UTC 2010 i686 GNU/Linux
我跑的时候:
sudo -u git git-daemon --base-path=/home/git/repositories/ --export-all
它说:
sudo: git-daemon: command not found
我错过了什么?
我跑了git add .一会儿,然后它什么也没做,然后说error: daemon terminated。所有命令都会发生这种情况,而不仅仅是git add如何解决这个问题?git status确实显示了一些有关要提交的更改的信息,但仍然显示相同的错误
我在本地主机上托管Git守护程序,即'/usr/bin/git daemon --listen=127.0.0.1 --base-path=/opt'作为systemd服务,我试图从docker容器访问它.我没有提到端口,因为我不想将端口暴露给外部网络.
Dockerfile:
RUN git clone git://127.0.0.1/repo/ repo_dir
Run Code Online (Sandbox Code Playgroud)
但它不起作用,它看起来像在容器内试图连接容器的localhost.
那么如何从Docker容器连接主机的localhost?
git-daemon ×9
git ×7
clang-format ×1
cygwin ×1
docker ×1
dockerfile ×1
git-pull ×1
git-push ×1
githooks ×1
launchd ×1
macos ×1
repository ×1
sh ×1
ubuntu ×1