使用 Git over OpenSSH 在 windows server 2016 上部署 repo
Posted
技术标签:
【中文标题】使用 Git over OpenSSH 在 windows server 2016 上部署 repo【英文标题】:Using Git over OpenSSH to deploy repo on windows server 2016 【发布时间】:2018-09-06 01:32:08 【问题描述】:我在使用 git 命令从位于 Ubuntu 服务器上的裸仓库到位于 Windows 服务器 2016(在 Active Directory 中)上的另一个裸仓库时遇到困难
我在 windows 服务器上使用https://github.com/PowerShell/Win32-OpenSSH 来允许 ssh 连接。
我的 .ssh/config
Host INTRANET
Hostname 192.168.1.153
User git@INTRANET
IdentityFile ~/.ssh/id_rsa
请允许我使用我的 rsa 密钥登录
$ ssh INTRANET
打开一个控制台:
$ whoami
INTRANET+git
还有
$ pwd
/c/Users/git
然后
$ ls
myrepo.git
最后:
$ ls -all myrepo.git/
total 25
drwxr-xr-x 1 INTRANET+git 197121 0 Mar 27 13:24 .
drwxr-xr-x 1 INTRANET+git 197121 0 Mar 27 15:52 ..
-rw-r--r-- 1 INTRANET+git 197121 60 Mar 23 11:46 FETCH_HEAD
-rw-r--r-- 1 INTRANET+git 197121 23 Mar 16 11:31 HEAD
-rw-r--r-- 1 INTRANET+git 197121 151 Mar 16 11:30 config
-rw-r--r-- 1 INTRANET+git 197121 73 Mar 16 11:30 description
drwxr-xr-x 1 INTRANET+git 197121 0 Mar 27 13:24 hooks
drwxr-xr-x 1 INTRANET+git 197121 0 Mar 27 13:24 info
drwxr-xr-x 1 INTRANET+git 197121 0 Mar 27 13:24 objects
-rw-r--r-- 1 INTRANET+git 197121 284 Mar 16 11:31 packed-refs
drwxr-xr-x 1 INTRANET+git 197121 0 Mar 27 13:24 refs
Ubuntu 持有一个裸仓库
$ cat config
[remote "origin"]
url = INTRANET:~/myrepo.git
但是当我
$ git --bare fetch
fatal: ''~/myrepo.git'' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
【问题讨论】:
你的仓库在 Windows 服务器上的路径是什么?你的第一个ls
显示myrepo.git
,但第二个显示'TREQ.git`。
@stephenNewell 错字已更正
【参考方案1】:
尝试使用完整路径
url = INTRANET:/c/Users/git/myrepo.git
这样,~
就不必解释了。
【讨论】:
你的意思是 INTRANET:/c/Users/git/myrepo.git? 我仍然收到相同的fatal: ''/c/Users/git/myrepo.git'' does not appear to be a git repository fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
@PeterPeterson 当你做一个ssh INTRANET
时,你可以去cd /c/Users/git/myrepo.git
,并在其中做一个git status
,只是为了确认repo 存在吗?
ssh INTRANET
然后cd /c/Users/git/myrepo.git
。因为它是一个裸仓库,所以 git branch
给我 *master
@PeterPeterson 你能在 ssh 配置中将用户从 git@INTRANET 更改为 git 吗?以上是关于使用 Git over OpenSSH 在 windows server 2016 上部署 repo的主要内容,如果未能解决你的问题,请参考以下文章
Jenkins Publish over SSH 异常:Connection reset by peer: socket write error