上一篇文章主要记录了Git的本地仓库使用:黑马程序员Git分布式控制工具-本地仓库,本篇文章主要记录如何利用Git来操作GitHub
五、Git远程仓库
5.1 配置连接上GitHub
连接上GitHub
# 配置github用户名
git config --global user.name "用户名"
# 配置github绑定的邮箱
git config --global user.email "邮箱"
执行完之后肯查看配置是否生效
git config --global --list
5.1.1 正常情况
正常情况下设置密钥即可连接,随后设置密钥
ssh-keygen -t rsa
连续敲击三次回车,结束后去检查用户名下的.ssh
文件夹,例如(/c/Users/29973/.ssh/)
,生成id_rsa
和id_rsa.pub
即可
将公钥 id_rsa.pub
添加到GitHub
管理平台中,在GitHub
的个人账户的设置中找到如下界面
添加之后可执行如下命令测试连接
ssh -T git@github.com
回复yes
即可
如果出现successly
字样,则表示连接成功
5.1.2 端口超时
绝大部分情况下会出现连接超时现象:ssh: connect to host github.com port 22: Connection timed out
,修改步骤如下:
- 我们先删除
id_rsa
和id_rsa.pub
- 在
.ssh
文件夹下新建config
文件(注意,没有文件后缀),添加如下内容,其中第二行的邮箱需要替换为github
中绑定的邮箱
Host github.com
User
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443
- 再次生成密钥
ssh-keygen -t rsa
- 按照上述正常步骤添加密钥
- 测试连接即可成功
5.2 设置连接
使用代码进行远程连接,其中origin
是远程仓库我们设置的本地名称
git remote add origin git@github.com:用户名/仓库名
5.3 查看连接
验证仓库是否连接成功
git remote
5.4 移除仓库rm
git remote rm origin
5.5 推送到远程仓库push
将本地的仓库推送到远程仓库
git push origin master
其中还可以指定远端的分支名称
git push [-f] [--set-upstream] [远端名称 [本地分支名][:远端分支名] ]
-
其中
-f
表示强行覆盖,如果远程分支名和本地分支名称相同,则可以只写本地分支。 -
其中
--set-upstream
推送到远端的同时并且建立起和远端分支的关联关系。 -
如果当前分支已经和远端分支关联,则可以省略分支名和远端名,即只写
git push
所以其实我们完整的表达,应该是如下:
git push origin master:master
5.6 本地分支和远端分支的关系branch
查看关联关系
git branch -vv
5.7 克隆clone
从远端克隆仓库到本地(一般只需要克隆一次即可,剩余的更新使用pull
即可),但是这里要注意,会进入默认分支,如果存在其余分支,需要另外进入
git clone git@github.com:用户名/仓库名 本地位置
5.8 抓取fetch
如果我们每更新一次仓库,我们都要clone
一次,那么将大大降低我们的效率,所以在现实的使用过程中,我们都只clone
一次仓库,随后我们可以通过抓取命令来实现内容的更新
假设master
分支下只有三个文件,如图,并且我们把他克隆到了本地
随后,我们添加上传了一个新的文件
此时我们使用拉取,显示拉取成功,但是文件夹下面并没有这个文件
git fetch
此时我们需要用到合并,将拉取下来的文件合并到我们当前的文件夹中
git merge origin/master
5.9 拉取pull
上述流程过于复杂,我们可以用一个二合一的命令pull
来简化操作,当我们更新了内容之后,用pull
即可将内容抓取并且合并起来
git pull