GIT SSH Repository Server

本文介绍了使用SSH方式搭建Git仓库的过程及遇到的问题解决方案。重点包括如何初始化仓库、解决首次提交时遇到的错误提示,以及成功推送master分支的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天试用试用HTTP的方式搭一个git repository server,但是最后无法push,提示


error: Cannot access URL http://xxxx/experience.git/, return code 22
fatal: git-http-push failed


最后只好放弃,改用SSH方式, 先初始化git仓库:


$ cd ~/local/httpd22/htdocs
$ mkdir myproject.git
$ cd myproject.git
$ git init --bare

这里需要注意--bare参数,表示是要生成一个"干净"的仓库,仅包含历史代码不包含工作代码。如果是希望初始化一个已存在的代码库,也可以类似如下命令替换最后一行git命令:

$ git clone --bare /path/to/my_project myproject.git


但是第一次commit时,出现

[frankwang@apollo-2 test2]$ git push
frank@xxxxx's password: 
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'ssh://frank@xxxx/home/frank/test2.git'


网上查了以下,解决方法如下:

http://blog.youkuaiyun.com/viweei/article/details/6163562

http://www.thebuzzmedia.com/git-tip-git-push-no-refs-in-common-and-none-specified/

$ git push origin master

[frankwang@apollo-2 test2]$ git push origin master
frank@192.168.1.135's password: 
Counting objects: 3, done.
Writing objects: 100% (3/3), 213 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://frank@xxx/home/frank/test2.git
 * [new branch]      master -> master



### 如何配置 Git 使用 SSH 进行连接和身份验证 #### 创建并添加 SSH 密钥至本地机器 为了使 Git 能够通过 SSH 协议与远程仓库通信,需先创建一对新的 SSH 密钥。这可以通过运行 `ssh-keygen` 命令完成: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 上述命令会提示指定保存私钥的位置,默认情况下会在用户的 `.ssh` 文件夹下生成名为 `id_rsa` 的文件对(公钥为 `id_rsa.pub`)。建议接受默认路径以便后续操作更加简便。 接着,启动 SSH 代理服务并将新生成的密钥加入其中: ```bash eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa ``` #### 将公钥添加到 GitHub 或其他 Git 托管平台账户设置中 获取刚刚生成的公钥内容,并将其粘贴到对应的 Git 平台上的个人资料里去关联该密钥。对于 GitHub 用户来说,在浏览器打开 [GitHub SSH 和 GPG 密钥页面](https://github.com/settings/keys),点击“New SSH key”,然后把之前复制的内容填入 Key 字段内提交即可[^2]。 #### 修改现有项目的远程地址为 SSH 形式 如果有已经克隆下来的项目是以 HTTPS 方式链接,则需要转换成 SSH 格式的 URL 来匹配当前的身份认证方式更改后的环境。可以使用如下指令实现这一点: ```bash git remote set-url origin git@your_git_server:your_username/your_repository.git ``` 这里需要注意替换实际使用的 Git 服务器域名以及用户名和仓库名部分以适应具体的场景需求[^1]。 #### 测试 SSH 连接有效性 最后一步是要确认一切正常工作,即能够成功建立从本机到目标 Git 服务器的安全 shell 连接。为此可执行下面这条简单的测试语句: ```bash ssh -T git@your_git_server ``` 如果看到一条欢迎消息表示 Hi 加上自己的账号信息,说明配置无误;反之则可能存在问题需要排查解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值