ubuntu 使用 github

我们首先使用ssh命令连接github.com的SSH服务,登录用户名为git(所有GitHub用户共享此SSH用户名,不要写成其他)。

ssh -T git@github.com
执行之后提示:Permission denied (publickey).

这说明我们还没在GitHub账户中正确设置公钥认证。下图为GitHub的SSH公钥设置界面:

GitHub的SSH服务支持OpenSSH格式的公钥认证,可以通过Ubuntu下的ssh-keygen命令创建公钥/私钥对。

ssh-keygen -C "yourname@yourcompany.com" -f ~/.ssh/github

也可以用ssh-keygen命令以不同的名称创建多个公钥,当拥有多个GitHub账号时,非常重要。这是因为虽然一个GitHub账号允许使用多个不同的SSH公钥,但反过来,一个SSH公钥只能对应于一个GitHub账号。

接下来就将~/.ssh/github.pub文件内容拷贝到剪切板。公钥是一行长长的字符串,若用编辑器打开公钥文件会折行显示,注意在copy时一定不要在其中插入多余的换行符、空格等,否则在公钥认证过程因为服务器端和客户端公钥不匹配而导致认证失败。然后将公钥文件中的内容粘贴到GitHub的SSH公钥管理的对话框,即上图key对话框中,并为这个SSH Key起个名字并保存。设置成功后,再用ssh命令访问GitHub,会显示一条认证成功信息并退出。在认证成功的信息中还会显示该公钥对应的用户名。

ssh -T git@github.com
执行后提示:Hi github! You've successfully authenticated, but GitHub does not provide shell access.

通过以上的设置之后,我们就能够通过SSH的方式,直接使用Git命令访问GitHub托管服务器了。那么,下面我们就开始使用Git进行版本控制:

1. 从服务器下载代码,准确的说应该是从GitHub服务器复制一个版本库到本地:

mkdir git
mkdir repos
cd git/repos
git clone git@github.com:"account context"/"repos name".git

2. 获取到源码之后,就可以进行开发了,代码开发完成就可以提交代码:

git add .    //往暂存区域添加已添加和修改的文件,不处理删除的文件
git status   //比较本地数据目录与暂存区域的变化
git commit -m "commit directions" //提到代码到本地数据目录,并添加提交说明

3. 有可能你和其他人改的是同一个文件,那么冲突的情况是在所难免的,那么在提交之后再获取一下代码,就会提示代码冲突的文件,我们需要做的就是处理这些冲突,并再次提交:

git pull     //更新代码
根据提示修改冲突文件中的代码
git add .
git commit -m "commit directions"

4. 当你做完以上的步骤的时候,你需要做的是把本地数据目录的版本库的数据同步到GitHub服务器上去,这样你的同事才能够看到你作出的修改:

git push

注意:""中的内容需要读者根据自己实际情况书写合适的内容。

本文的主要目的是为了让程序员能够快速的上手使用Git和GitHub,希望对大家有帮助。


### Ubuntu 系统连接 GitHub 出现问题的解决方案 #### 一、确认网络连通性 确保 VMware 虚拟机中的 Ubuntu 可以正常访问互联网。可以尝试 ping 测试其他网站来验证网络状况。 ```bash ping www.google.com ``` 如果无法成功 ping 通外部站点,则需检查虚拟机网络设置,建议采用 NAT 或桥接模式[^2]。 #### 二、SSH 配置与测试 对于通过 SSH 方式推送代码的情况,应先配置 RSA 公钥并完成身份认证: 1. 创建密钥对(若尚未存在) ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 2. 将生成的公钥添加至 GitHub 帐号的安全设置里 3. 使用以下命令检验是否能顺利建立连接 ```bash ssh -T git@github.com ``` 当显示类似 `Hi username! You've successfully authenticated...` 的消息即表示配置无误[^3]。 #### 三、调整 DNS 设置优化 HTTPS 访问速度 针对部分地区的用户可能遇到因 ISP 提供的DNS解析缓慢而导致的超时错误,可以通过修改 `/etc/hosts` 文件手动指定 GitHub 主域名及其 CDN 地址对应的 IP 来改善这一情况: 获取最新有效的IP地址列表可借助第三方服务如 ipaddress.com 查询,并按照如下模板编辑 hosts 文件: ```bash sudo nano /etc/hosts ``` 追加内容示例: ``` # 替换为实际查询所得的具体数值 xxx.xxx.xxx.xxx github.com yyy.yyy.yyy.yyy github.global.ssl.fastly.net zzz.zzz.zzz.zzz assets-cdn.github.com ``` 保存更改后重启计算机使新配置生效[^4]。 #### 四、代理服务器设定 (如有必要) 某些企业环境内部署有防火墙策略限制直接对外网资源发起请求,在这种情况下考虑部署 HTTP(S) 代理辅助通信过程。具体操作涉及安装 Squid 等软件包以及相应环境变量定义等高级话题此处不再赘述。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值