zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    什么是C/S和B/S结构(二)转
    程序员的爱情独白(转)
    为什么美女喜欢软件开发的gg做老公
    C# DataGridView中 显示行号
    联想F31笔记本配置分析
    理解.NET中的数据库连接池[转]
    C#获取当前路径的方法集合
    vb6,vs2005快捷键使用,提高操作速度[转]
    Visual Studio Team System 2008 Team Suite (VSTS 2008) 简体中文正式版下载(正在下载中 60K/秒)
    一个正在项目中使用的DataInterface数据访问接口
  • 原文地址:https://www.cnblogs.com/sout-ch233/p/12720403.html
Copyright © 2011-2022 走看看