Git教程
01、Git 基础教程
02、Git 安装 – Linux
03、Git 安装 – Window
04、Git 安装 – Mac OS
05、Git 配置 – git config
06、Git 工作流程
07、Git 工作区、暂存区和版本库
08、Git 创建仓库 – git init
09、Git 添加文件到暂存区- git add
10、Git 提交文件到版本库 – git commit
11、Git 克隆仓库 – git clone
12、Git 删除文件 – git rm
13、Git 重命名文件 – git mv
14、Git 取消已缓存 – git reset HEAD
15、Git 分支管理 – git branch
16、Git 查看提交历史 – git log
17、Git 标签 – git tag
18、Git 远程仓库 ( Github )
19、Git 远程服务搭建
20、Git 快速参考手册
21、Git 基本操作
22、Git Flow
本文档使用 MrDoc 发布
-
+
首页
18、Git 远程仓库 ( Github )
之前我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享代码或者与其它开发人员合作 那么就需要将数据放到一台其他开发人员能够连接的服务器上 本章节,我们将使用 GitHub 作为远程仓库,演示如何操作远程仓库 如果你还没有 Github 账号,可以在官网 [https://github.com/](https://github.com/ "https://github.com/") 注册 ### **配置** ------------ 由于我们的本地 Git 仓库和 GitHub 仓库之间的传输是通过 SSH 加密的,所以我们需要配置验证信息 1、 使用以下命令生成SSHKey; ```python ssh-keygen -t rsa -C "your_email@youremail.com" ``` ```python 后面的 **your\_email@youremail.com** 改为你在 github 上注册的邮箱 ``` 2、 然后会出现下面的提示要求确认路径; ```python Enter file in which to save the key (~/.ssh/id_rsa): ``` ```python 我们建议将路径改成 ~/.ssh/github 也就是最后会保存为 github 而不是 id_rsa > 这样可以避免主要的 SSH 被覆盖 ``` 3、 按回车之后,会出现下面的提示要求输入密码,我们这使用默认的一路回车就行; ```python Enter passphrase (empty for no passphrase): Enter same passphrase again: > 为什么不设置呢? 因为有些 Git 客户端软件没有设置密码的地方,省的以后每次输入密码麻烦 ``` 4、 成功的话会在`~/.ssh`创建文件`github`和`github.pub`; 5、 打开`~/.ssh/github.pub`文件,复制里面的内容; 6、 回到github上,进入`Account=>Settings`(账户配置); 7、 左边选择`SSHandGPGkeys`,然后点击`NewSSHkey`按钮; 8、 进入SSH添加界面,title设置标题,可以随便填,粘贴在你电脑上生成的key; 9、 点击AddSSHKey按钮 10、 为了验证是否成功,输入以下命令; ```python ssh -T git@github.com ``` 如果出现下面内容,证明成功。 ```python Warning: Permanently added the RSA host key for IP address '52.74.223.119' to the list of known hosts. Hi ijoywan! You've successfully authenticated, but GitHub does not provide shell access. ``` ### **Github 官方上添加仓库** ------------ 1、 登录到`Github.com`官方后,点击右上角的`+`号; 2、 然后点击`Newrepository` 在 **Repository name** 输入你想创建的仓库的英文名,比如 souyunku-git-tutorial 其它保持默认即可,不过你也可以做一些更改 3、 填写完成后点击`Createrepository`按钮,就成功地创建了一个新的Git仓库; ### **创建本地相对应的仓库** ------------ 刚刚我们在 Github.com 上新建了一个仓库 souyunku-git-tutorial 那么我们要如何在本地创建对应的仓库呢? 有三种方式:从远程仓库 clone 、本地新建 和 本地已经存在 **1、 从远程仓库clone;** `git clone git@github.com:ijoywan/souyunku-git-tutorial.git` 输出如下信息: ```python Cloning into 'souyunku-git-tutorial'... Warning: Permanently added the RSA host key for IP address '13.229.188.59' to the list of known hosts. warning: You appear to have cloned an empty repository. ``` 然后使用 `cd souyunku-git-tutorial` 进入 `souyunku-git-tutorial` 目录 最后做一些配置 ```python git config user.name ijoywan git config user.email noreply@docfor.cn ``` **2、 本地新建仓库;** ```python $ mkdir souyunku-git-tutorial 创建目录 $ cd souyunku-git-tutorial 进入目录 $ echo "# abcd" > README.md 创建 README.md 文件并写入内容 $ ls 查看目录下的文件 README.md $ git init 初始化 Initialized empty Git repository in /Users/penglei/github/souyunku-git-tutorial/.git/ $ git add README.md 添加文件 $ git commit -m "添加 README.md 文件" 提交并备注信息 [master (root-commit) 9c81d29] 添加 README.md 文件 1 file changed, 1 insertion(+) create mode 100644 README.md ``` 然后做一些配置 ```python git config user.name ijoywan git config user.email noreply@docfor.cn #可以使用命令 git config --list 检查下配置是否正确 #最后提交到 Github ``` ```python $ git remote add origin git@github.com:ijoywan/souyunku-git-tutorial.git $ git push -u origin master Counting objects: 3, done. Writing objects: 100% (3/3), 265 bytes | 265.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) To github.com:ijoywan/souyunku-git-tutorial.git * [new branch] master -> master Branch master set up to track remote branch master from origin. ``` 3、 如果之前本地仓库已经存在,那么就更好办了,直接使用下面的命令添加Github仓库; ```python $ git remote add origin git@github.com:ijoywan/souyunku-git-tutorial.git $ git push -u origin master ``` 然后我们回到 Github 上创建的仓库,就可以看到我们刚刚添加的文件 `README.md`  ### **查看当前的远程库** 要查看当前配置有哪些远程仓库,可以用命令`git remote 范例 ```python $ git remote origin ```` 如果要查看每个别名的实际链接地址,可以添加参数 `-v` ```python $ git remote -v origin git@github.com:ijoywan/souyunku-git-tutorial.git (fetch) origin git@github.com:ijoywan/souyunku-git-tutorial.git (push) ``` ### **拉取远程仓库** 如果远程仓库他人做了更改,那么就需要从远程仓库拉取更改,合并到本地仓库 Git有两个命令用来拉取远程仓库的更新 1、 从远程仓库下载新分支与数据; ```python git fetch # 该命令执行完后需要执行 git merge 远程分支到本地所在的分支 ``` 2、 将远程仓库拉取的更新尝试合并到当前分支; ```python git merge # 该命令就是在执行 git fetch 之后紧接着执行 git merge 远程分支到你所在的任意分支 ``` 假设配置好了一个远程仓库,并且你想要提取更新的数据 你可以首先执行` git fetch [alias]` 告诉 Git 去获取它有你没有的数据 然后你可以执行 `git merge [alias]/[branch]` 以将服务器上的任何更新(假设有人这时候推送到服务器了)合并到你的当前分支 范例 我们先在 Github 上点击 `README.md` 并在线修改它  修改为  然后我们就可以使用下面的命令拉取远程的修改更新 ```python $ git fetch origin remote: Counting objects: 3, done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), done. From github.com:ijoywan/souyunku-git-tutorial 9c81d29..84a307e master -> origin/master ``` 信息`9c81d29..84a307e master -> origin/master` 说明 `master` 分支已被更新 我们可以使用以下命令将更新同步到本地 ```python $ git merge origin/master Updating 9c81d29..84a307e Fast-forward README.md | 2 ++ 1 file changed, 2 insertions(+) ``` 查看`README.md` 文件内容 ### **推送到远程仓库** 本地修改的更新,经过自己测试成功后,就可以推送到远端的仓库里 推送新分支与数据到某个远端仓库命令 ```python git push [alias] [branch] ``` 上面的命令会将 **[branch]** 分支推送成为 **[alias]** 远程仓库上的 **[branch]** 范例 ```python $ touch demo.md 添加文件 $ git add demo.md 提交暂存区 $ git commit -m "添加 demo.md 文件" [master c0137c6] 添加 demo.md 文件 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 demo.md $ git push origin master 推送到 Github Counting objects: 3, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 287 bytes | 287.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) To github.com:ijoywan/souyunku-git-tutorial.git 84a307e..c0137c6 master -> master ``` 点开我们在 Github 的仓库,可以看到文件 `demo.md` 已经成功提交到远程仓库上了  ### **删除远程仓库** 删除远程仓库可以使用命令 ```python git remote rm [别名] ``` **范例** 1、 先查看有多少远程仓库; ```python $ git remote -v origin git@github.com:ijoywan/souyunku-git-tutorial.git (fetch) origin git@github.com:ijoywan/souyunku-git-tutorial.git (push) ``` 2、 添加分支origin2; ```python $ git remote add origin2 git@github.com:ijoywan/souyunku-git-tutorial.git ``` 3、 再次查看远程仓库有多少分支; ```python $ git remote -v origin git@github.com:ijoywan/souyunku-git-tutorial.git (fetch) origin git@github.com:ijoywan/souyunku-git-tutorial.git (push) origin2 git@github.com:ijoywan/souyunku-git-tutorial.git (fetch) origin2 git@github.com:ijoywan/souyunku-git-tutorial.git (push) ``` 4、 删除分支origin2; ```python $ git remote rm origin2 $ git remote -v origin git@github.com:ijoywan/souyunku-git-tutorial.git (fetch) origin git@github.com:ijoywan/souyunku-git-tutorial.git (push) ```
李智
2025年3月17日 13:26
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码