Github快速上手笔记(wmt专属)

  • Post author:
  • Post category:其他



写在前面


Git的重要性不用多说了,最近抽了点时间整体学了一下,这篇blog定位是作为使用过程中遇到的各种问题及对应的解决方法的汇总把,会不定时更新。



一、 前置



1. 注册与下载


github注册



git下载



2. 学习资料

下面几个是我找到的几个整理得非常不错的资料,大概都看过一遍,整理得很清楚了,所以我这篇blog就没有再仔细去写基础知识了,主要以记录问题为主。


1、黑马程序员的Git入门教程

– 这个对Git有一个整体介绍,但是没有讲解branch等比较高级的用法,适合快速入门;


2、猴子都能懂的Git入门

– 这个可以作为一个Git命令的手册来使用;


3、Git和Github详细入门教程

– 一篇挺不错的Git知识串讲的blog;


4、三年 Git 使用心得 & 常见问题整理

– 这篇更多是对工作常见场景的Git知识点的总结。



二、应用场景

在这里插入图片描述

下文的逻辑是给出一个应用场景,然后下面分点描述是对应在这个应用场景中遇到的做的快速笔记,不定时更新。



1. 将本地项目添加到远程的github仓库

  • 1.1 本地的git在下载之后使用之前都必须要进行一些配置

    git config --global user.name '用户名'
    git config --global uesr.email '用户邮箱'
    git config -l (注释:这个是用来检查一下用户的配置是否成功的)
    
  • 1.2 如果是自己建立本地仓库,需要初始化,然后生成 .git 文件夹

    git init
    
  • 1.3 链接远程数据库的方式

    git clone 远程链接 # 方法 1
    

    通过clone方式可以直接生成.git文件夹,这样生成的config文件里边就包括远程仓库的所有信息了(下图所示)。

    在这里插入图片描述

    git remote add origin 远程仓库链接 # 方法 2
    

    这里是通过命令添加进config文件中。

  • 1.4 将本地修改的内容传到本地仓库的步骤

    (1)先查看本地文件中还没被处理的文件的情况

    git status # 红色就代表还未被处理的文件
    

    (2)将文件上传到github的第一步

    git add 文件名 # 也可以用*代表上传所有文件
    

    (3)上传第二步,并且提交注释

    git commit -m '注释内容' # 注意,注释内容不能有空格,可以用下划线代替
    

    在这里插入图片描述

  • 1.5 将本地的操作推送到远端

    git push -u origin master # 这里假设推送的目标远程分支是master
    


    可能遇到的报错1

    :Could not resolve host: github.com


    deal



    (1)在cmd窗口输入ping github.com

    (2)然后记住github.com这个域名对应的ip地址

    在这里插入图片描述

    (3)用记事本打开路径为c:\Windows\System32\drivers\etc\hosts中的host文件(如果是linux的话目录就是etc/hosts)

    (4)然后按照下面我这个格式输入,然后保存即可。
    在这里插入图片描述


    可能遇到的报错2

    :fatal: unable to access ‘https://github.com/Ten24qwq/test.git/’: OpenSSL SSL_read: Connection was reset, errno 10054(访问超时)


    deal



    配置代理



    可能遇到的报错3:

    remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.(无法通过账号密码登录,要使用token)


    deal

    :

    生成token

    ||

    使用github的token作为登录密码



    可能遇到的报错4:

    fatal: unable to access ‘https://github.com/Ten24qwq/test.git/’: Failed to connect to github.com port 443: Timed out


    deal

    :

    github 能打开网页,ping 不通,clone 速度太慢,Clone failed early EOF 报错,pull 卡死



    可能遇到的报错5:

    ! [remote rejected] main -> main (permission denied) (权限问题)


    deal



    添加权限成员



2. 其余账号修改主账号发布的内容

  • 2.1 整体流程

    (1)在左上角输入 “”用户名+仓库名”进行搜索。

    这里斜杠两边不要习惯性加空格了(在这里不是个好习惯),不然会搜不到的。

    在这里插入图片描述
    (2)点击右上角的fork,从而拷贝一份到你的github仓库

    在这里插入图片描述

    (3)对本地文件进行修改。可以通过clone到本地,然后本地进行修改再push回来也可以直接在github上面可视化更改。

    在这里插入图片描述
    (4)修改完成之后点击下方的commit按钮。

    (5)然后就可以看到有多个用户编辑过这个文档了。


    (6)此时只有小号github仓库才有修改,接下来将修改传送给大号,点击pull request

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    (7)接下来大号审核来自小号的修改,审核通过即可将修改并入大号github上的主支

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    点进去查看具体的修改内容,加号代表新增加的内容

    在这里插入图片描述

    如果审核没什么问题,再次点击pull request

    在这里插入图片描述

    点击这个按钮
    在这里插入图片描述


    可能出现的问题:



    deal

    : 首先确保执行merge操作的是大号,如果是大号还出现这种问题,重登几遍。

  • 2.2 pull request 和直接在本地push远程仓库的区别与联系是什么?

    前者是修改者修改完之后会发送给主开发者进行审核,一般是配合fork之后进行使用;后者如果想直接push到远程仓库,则必须要让该远程仓库的拥有者赋予contribute权限。两者的联系一般都是开发成员fork项目到自己的github中,然后再把这个项目clone回自己的本地,在本地进行修改之后push到自己的github中,然后再在自己的github上提交pull request给源项目,让源项目leader考虑之后再决定接不接受这个更改。



3. 利用分支进行项目开发

  • 创建分支和提交分支到远程的代码


    Git创建远程分支并提交代码到远程分支

  • 开发人员已经被赋予了contribute权限(

    添加权限成员

    )的情况下的开发流程

    (1)有项目需要进行开发,该项目的远程仓库称为X,把X clone到本地,称为Y;

    (2)然后在本地创建分支dev,在dev上对Y进行修改开发,修改好之后如果是将整个分支提交给远程,看3-1,如果是在本地直接合并了分支,直接提交主分支给远程,看3-2;

    (3-1)远程仓库检查提交的branch,检查没问题就生成pull request,直接合并,合并可以是开发者的账号去自己这个项目的远程仓库合并(因为被leader赋予了contributor的权限,所以会在自己的仓库也会有这个项目的),也可以是leader的号去合。

    (3-2)这种情况不用去生成pull request了,但是要注意自己在合并的时候一定要在本地合并的时候把冲突解决了再push;

  • 开发人员没有被赋予contributor权限,但是还是想为项目做贡献

    参考上面第2个应用场景的流程,通过fork实现。但是这样每次开发之前都要保证自己的项目是最新的,可以先点击下图的按钮,fetch和merge(其实就是pull)下来,然后本地仓库也是通过git pull更到最新版本即可继续开发。

    在这里插入图片描述

  • 合并过程中的冲突解决


    在 GitHub 上解决合并冲突


写在后面


如果这篇blog对你有帮助,不妨点个赞再走呗。最后顺便放上我的github链接,欢迎一起学习。

yao’s github



版权声明:本文为messyking原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。