2- GitHub的使用


GitHub 官网对于 git 使用的示例

git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/kawendiyu/vue_mall.git
git push -u origin main
                
# …or push an existing repository from the command line
git remote add origin https://github.com/kawendiyu/vue_mall.git
git branch -M main
git push -u origin main
# …or import code from another repository
# You can initialize this repository with code from a Subversion, Mercurial, or TFS project.

简单使用 Git + GitHub

GitHub 端操作

  1. 登陆
  2. 创建远程仓库
  3. 手动复制远程仓库连接地址,一般就是:https://github.com/用户名/库名.git

有了这个远程仓库的地址,我们有两种玩法。


Git 端操作

push 本地工程到 GitHub

  • 在本地已有工程的根目录下,执行 git init,创建本地仓库

  • 为当前本地仓库添加远程仓库的地址,执行 git remote add [自定义远程仓库的别名] [远程地址]

    之后,查看当前本地仓库连接的远程地址别名: git remote -v

image-20200416113502346

  • 执行 git add . ,添加所有文件到暂存区

  • 执行 git commit -m "本次提交的概述" ,提交暂存区文件到本地仓库

  • 执行 git push,推送本地仓库到远程仓库

    git push [远程仓库的别名] [某个本地分支]  #(push某个分支到远程分支)
    
    git push  # push当前分支到远程仓库的同名分支
    
    git push -u [远程仓库的别名] [本地分支]  # -u表示新建一个远程仓库分支,名字和本地分支相同
    

image-20200416113528047

克隆 GitHub 上的工程

执行 git clone [远程仓库地址],会把远程仓库的东西全部clone到当前路径

clone 操作的执行效果是:

  1. 完整的把远程仓库下载到本地
  2. 自动创建 clone 的远程仓库的地址别名为: origin
  3. 自动初始化本地仓库

当然我们也可以手动执行起别名和本地仓库初始化

image-20200416113646776

GitHub团队成员邀请

  • 当前登录的GitHub账号发出邀请(主人)
image-20200416110745139 image-20200416110819190
  • Git 本地 clone下别人的文件,并修改后,若是想 push 到远程仓库(客人)

    条件是:你是远程仓库的所有者并登录GitHub账号;或者你被邀请成为团队成员。

    所以在push时登陆自己的GitHub账号,会检验当前账号有没有权限

image-20200416111501275 image-20200416111531043

从远程仓库拉取工程

  • git fetch [远程仓库地址别名] [远程分支名]
  • git merge [远程仓库地址别名/远程分支名]
  • git pull [远程仓库地址别名] [远程分支名]

区别:

  • fetch只会获取远程仓库中的文件,并不会覆盖本地库中的文件;
  • merge会使用从远程仓库获取的文件作为本地库文件;
  • pull = fetch+merge。

fetch 用于查看从远程仓库获取的文件内容,决定之后再merge,

fetch 的文件查看:git check out orgin/main,切换分支进行查看


解决 push 冲突

冲突发生原因:团队的不同成员修改了同一版本的文件,有人先进行了push,而有人后进行push,后push会失败。

简言之就是:如果不是基于 GitHub 远程仓库的最新版所做的修改, 不能push。

image-20200416113938430

解决办法:

  • 后push的人必须先从远程仓库pull下来最新的版本,

  • 最新版本的文件会与本地版本的文件合并,文件中会生成特殊符号来标识差异内容

  • 修改本地文件,并再次push,push不要带文件名

    git add filename
    git commit -m "resolve conflict"
    

GitHub跨团队协作

不同于团队成员邀请,团队以外人员只能操作远程仓库的副本,不能直接push到团队的远程仓库

首先需要两个账号,团队Team、个人A

操作流程:

  • A使用自己的账号,访问Team的远程仓库,点击fork,该操作会拷贝团队的远程仓库副本到自己的远程仓库
image-20200416115401748 image-20200416115455986 image-20200416115520860
  • A本地Git 下载刚才从Team fork的远程仓库,在本地修改后,push到自己的远程仓库
  • A发起pull request
image-20200416120035794 image-20200416120231326
  • 团队账号接收pull request
    • 对话
    • 审核代码
    • 合并代码

SSH密钥登陆

我们在进行push的时候,总是需要输入GitHub的账号+密码,使用SSH登陆可以简化push

Git在推送

  • 进入当前用户的家目录
$ cd ~
  • 删除ssh 目录(如果有的话)
$ rm -rvf .ssh
  • 运行命令生成.ssh 密钥目录
$ ssh-keygen -t rsa -C xxxxxxxxxxx@qq.com

​ [注意: 这里-C 这个参数是大写的 C]

  • 进入.ssh 目录查看文件列表

    $ cd .ssh
    $ ll
    
  • 查看 id_rsa.pub 文件内容,并复制 id_rsa.pub 文件内容

    $ cat id_rsa.pu
    
  • 登录 GitHub, 点击用户头像→Settings→SSH and GPG keys

    • New SSH Key
    • 输入复制的密钥信息
    • 回到 Git bash 创建远程地址别名
      git remote add origin_ssh git@github.com:atguigu2018ybuq/huashan.git
    • 推送文件进行测试
image-20200416141453350
posted @ 2020-04-17 15:43  卡文迪雨  阅读(186)  评论(0编辑  收藏  举报