Git和GitHub工具学习

01.了解GitHub(网站)和Git(版本管理工具)

1.1.GitHub网站介绍

  • Github是全球最大的代码托管网站
  • 网址:https://github.com/
  • 我们也可以把自己的代码托管到github仓库

1.2.Git版本管理工具介绍

  • Git是一个免费、开源的版本控制软件
  • 什么是版本控制?
    版本控制:是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况得系统。
  • 版本控制软件的具体功能:
    • 协同修改
      多人并行不悖的修改服务器端的同一个文件。
    • 数据备份
      不仅保存目录和文件的当前状态, 还能够保存每一个提交过的历史状态
    • 版本管理
      在保存每一个版本的文件信息的时候要做到不保存重复数据, 以节约存储空间, 提高运行效率。 这方面 SVN 采用的是增量式管理的方式, 而 Git 采取了文件系统快照的方式。
    • 权限控制
      对团队中参与开发的人员进行权限控制。
      对团队外开发者贡献的代码进行审核——Git 独有。
    • 历史记录
      查看修改人、 修改时间、 修改内容、 日志信息。
      将本地文件恢复到某一个历史状态
    • 分支管理
      允许开发团队在工作过程中多条生产线同时推进任务, 进一步提高效率。
  • 版本控制软件的分类:
    • 集中式版本控制工具 :CVS、 SVN、 VSS……
      在这里插入图片描述
    • 分布式版本控制工具:Git、 Mercurial、 Bazaar、 Darcs……
      在这里插入图片描述

1.3.GitHub和Git的关系?

  • Git是版本控制软件
  • Github代码托管网站
  • 关系:我们可以借助Git这个版本管理工具把我们的项目代码托管到github网站,至于如何使用git把我们的项目代码托管到GitHub网站我们后面再说

02.Github网站

2.1.为什么要学习使用GitHub网站?

  • 因为GitHub在这个网站上有很多优秀的开源项目,我们可以从上面找到很多我们喜欢的开源项
  • 关注行业前辈了解最新的行业动态(关注他的GitHub中托管的项目)

2.2.GitHub网站提供的功能

2.2.1.GitHub主页

在这里插入图片描述

  • 账号创建成功或点击网址导航栏github图标(那个黑色的八爪鱼图标)都可进入github主页
  • 该页左侧主要显示用户动态以及关注用户或关注仓库的动态,右侧显示所有的git仓库
2.2.2.个人主页

在这里插入图片描述

  • 个人主页显示的信息:头像,个人简介,关注我的人,我关注的人,我关注的git库,我的开源项目,我贡献的开源项目等信息
2.2.3.仓库主页

在这里插入图片描述

  • 仓库主页主要显示我们的仓库(一个一个github项目)
  • 仓库(Repository)
    仓库用来存放项目代码,每个项目对应一个仓库,多个开源项目则有多个仓库
2.2.4.仓库页面(重要)

在这里插入图片描述
仓库页面功能介绍:

  • 关注(Watch)
    关注项目,当项目更新可以接收到通知
  • 收藏(Star)
    收藏项目,方便下次查看,看到好的项目可以Star一下
  • 复制克隆项目(Fork)
    复制或者克隆别人的仓库到成为自己的仓库
    注意:复制为自己的仓库后就和别人的仓库没有关系了(类似文件拷贝)
  • 发起请求(Pull Request)
    当你发现别人的项目有问题或者可以改善的时候可以通过发送请求告知别人
  • 事务卡片(Issue)
    发现代码BUG,但是目前没有成型代码,需要讨论时用;

2.3.如何创建仓库(新项目)

  • 仓库主页点击NEW即可创建新的仓库
    在这里插入图片描述

2.4.仓库管理

2.4.1.在仓库中新建文件
  • 在想要管理的仓库页面中点击Add File选择Create new file
    在这里插入图片描述
    在这里插入图片描述
2.4.2.编辑创建的新文件

在这里插入图片描述
在这里插入图片描述

  • 修改文件
    在这里插入图片描述
  • 在commits中查看修改的记录
    在这里插入图片描述
2.4.3.上传本地文件到仓库

在这里插入图片描述

2.4.4.搜索仓库文件
  • 在要搜索文件的仓库页面点击GO to file进入筛选文件的页面
    在这里插入图片描述

2.5.删除仓库

  • 在仓库主页找到想要删除的仓库,点击进入仓库
    在这里插入图片描述
  • 然后点击setting,选中Options栏,向下拉找到Danger Zone,点击Delete this repository即可。
    在这里插入图片描述

03.Git的使用

3.1.Git的下载和安装

3.1.1.Git的下载
  • 官方网址:https://git-scm.com/
  • 进入官网点击Downloads
    在这里插入图片描述
  • 选择windows
    在这里插入图片描述
  • 选择64位系统的软件
    在这里插入图片描述
3.1.2.Git的安装
  • 双击下载好的软件开始安装
    在这里插入图片描述
  • 选择安装位置
    在这里插入图片描述
  • 选择组件(默认即可)在这里插入图片描述
  • 开始菜单目录名设置(默认即可)
    在这里插入图片描述
  • 选择使用命令行环境
    在这里插入图片描述
  • 接下来一路next就可以了(等待安装完成)
    在这里插入图片描述
    在这里插入图片描述
  • 如何查看安装的软件(桌面空白处右击鼠标即可查看)
    在这里插入图片描述

3.2.Git的优势

  • 使用git我们可以在本地对项目进行版本控制,不需要联网
我们可以使用git在本地进行版本控制
我们还可以使用git工具把我们的本地的项目托管到github网站,或者我们自己的私有服务器上
  • git命令与 Linux 命令全面兼容

3.3.Git的结构

在这里插入图片描述

  • 工作区:我们编写的代码都存放在工作区
  • 暂存区:存放临时存储
  • 本地Git仓库:存放历史版本

3.4.向本地Git仓库中添加文件流程

  • 我们可以在Git Bash Here中执行命令来操作。
    在这里插入图片描述

3.5.本地版本控制常用的git命令(提前知晓:重要!!!)

  • 查看Git的配置信息
命令:git config --list
  • 初始化本地文件夹为Git管理文件夹
命令:git init
  • 查看工作区或者暂存区状态
命令:git status
  • 将工作区中的文件添加到暂存区
选择提交的文件:
	命令:git add [file name]
提交全部文件:
	命令:git add *
  • 把提交到暂存区的文件撤回
选择撤回的文件:
	命令:git rm --cached  [file name]
撤回全部文件:
	命令:git rm --cached  *
  • 将暂存区的内容提交到本地库
命令:git commit -m "commit message" [file name]
  • 查看历史记录
git log:显示详细信息

git log --pretty=oneline:显示简洁的信息

git log --oneline:显示更简洁的信息

git reflog:HEAD@{移动到当前版本需要多少步}

注意:多屏显示控制方式:空格向下翻页,b 向上翻页,q 退
  • 版本的前进后退
方法一:基于索引值操作[推荐]
命令:git reset --hard [局部索引值]
例如:git reset --hard a6ace91
	
方法二:使用^符号: 只能后退
命令:git reset --hard HEAD^
注: 一个^表示后退一步, n 个表示后退 n 步

方法三:使用~符号: 只能后退
命令:git reset --hard HEAD~n
注: 表示后退 n 步
reset的参数对比:
		--soft参数:仅仅在本地库移动 HEAD 指针
		--mixed参数:在本地库移动 HEAD 指针,重置暂存区
		--hard参数:在本地库移动 HEAD 指针,重置暂存区,重置工作区 
  • 删除文件的找回
前提:删除前, 文件存在时的状态提交到了本地库。
操作:git reset --hard [指针位置]
 		删除操作已经提交到本地库, 指针位置使用:历史记录
 		删除操作尚未提交到本地库, 指针位置使用 :HEAD
  • 比较文件差异
git diff [文件名]:将工作区中的文件和暂存区进行比较

git diff [本地库中历史版本] [文件名]`:将工作区中的文件和本地库历史记录比较
注意:不带文件名比较多个文件

3.6.Git的初始化配置(也可以不配置)

  • Git安装好之后需要初始化一些配置信息,例如用户名和用户邮箱等。
  • 作用: 区分不同开发人员的身份
  • 注意: 这里设置的用户名,邮箱和登录远程库(代码托管中心)的账号、 密码没有任何关系
  • 方法:桌面空白处右键打开Git Bash Here,执行下面的命令即可:
1. 设置用户名
git config --global user.name 'alsmall'
2. 设置用户名邮箱
git config --global user.email '123456789@qq.com'
3.使用以下命令可以查看配置信息
git  config --list

3.7.本地Git仓库创建和操作

3.7.1.如何在本地创建一个Git仓库
  • 第一步:在磁盘上新建一个用来存放项目的文件夹,例如testRepository(一个Git仓库)
  • 第二步:切换到testRepository文件夹下,使用命令:git init 将此文件夹初始化为一个Git仓库即可。
  • 注意: 此时在文件夹(testRepository)下会多出一个隐藏文件:.git这个文件中的内容不能动,否则我们就无法进行版本控制了
    在这里插入图片描述
3.7.2.如何向本地Git仓库添中加文件
  • 使用touch 文件命令在testRepository仓库种添加文件
  • 使用git add 文件名 将此文件移动到暂存区
  • 使用git commit -m '提交描述'命令将文件从暂存区提交到Git仓库
  • 注意:使用git status命令查看当前的文件状态
    在这里插入图片描述
3.7.3.使用命令修改本地仓库工作区中的文件(了解)
  • 使用vi 文件名加后缀命令进入修改文件页面
    在这里插入图片描述
  • 编辑页面
    在这里插入图片描述
  • 注意:工作区中的文件修改后不要忘记提交
    在这里插入图片描述
3.7.4.使用命令删除本地仓库中文件(了解)
  • 使用rm -rf 文件名命令来删除文件
  • 使用git rm 文件名命令删除暂存区文件
  • 使用git commit -m '提交描述'命令来提交
    在这里插入图片描述

3.8.Git 和代码托管中心(远程仓库)

  • 我们虽然可以在本地进行版本控制,但是为了安全和方便起见,我们还会把本地Git仓库通过Git推送到代码托管中心(远程库),此时就算我们本地的Git仓库被删除也不用害怕。
    在这里插入图片描述

  • 代码托管中心的任务: 维护远程库

  • 局域网环境下的远程仓库(私服)

    • GitLab 服务器
  • 外网环境下的远程仓库(代码托管网站)

    • GitHub
    • 码云

3.9.连接远程仓库常用的git命令(提前知晓:重要!!!!)

  • 关联远程仓库
git remote add origin 远程仓库的HTTPS链接
  • 查看关联的远程仓库
命令:git remote -v
  • 移除关联的远程仓库
命令:git remote remove origin
  • 将本地文件推送到远程仓库
命令:git push origin master

注意:如果新建的远程仓库为空的,使用这个命令提交时要加上-u这个参数 
	命令:git push -u origin master

注意:如果远程库不为空要做这一步(获取远程库与本地同步合并)否则后面的提交会失败
	命令:git pull --rebase origin master
	提交:git push origin master

3.10.使用Git管理远程仓库

3.10.1.使用远程仓库的目的
  • 作用:备份,实现代码共享集中化管理
    在这里插入图片描述
3.10.2.如何将本地的Git仓库同步到GitHub(远程仓库)
3.10.2.1.方式一:通过克隆(HTTPS协议)(建议使用)
  • 第一步:在GitHub上创建一个仓库(注意把仓库地址复制先来以备用)
    在这里插入图片描述

  • 第二步:在本地使用Git Bash Here软件将远程仓库克隆下来
    在这里插入图片描述
    在这里插入图片描述

  • 第三步:我们把本地项目文件夹下的所有文件,都复制到这个克隆的文件夹下
    在这里插入图片描述

  • 第四步:接着继续输入命令 cd testCreatRepository,进入testCreatRepository文件夹
    在这里插入图片描述

  • 第五步:接下来依次输入以下代码即可完成上传操作

1.别忘记后面的*,此操作是把该文件夹下面的文件都添加进来
git add *    
2.“提交信息”,我们自己填自己需要的
git commit  -m  "提交信息"  
3.此操作目的是把本地仓库push到github上面,此步骤需要输入帐号和密码
git push -u origin master   

在这里插入图片描述

3.10.2.2.方式二:通过SSH协议(SSH加密)
  • 第一步:在本地新建一个Git仓库(在本地创建一个文件夹,在此文件下打开Git Bash Here使用git init命令将此文件夹初始化一下即可)

  • 第二步:在本地Git仓库中新建一个文件:touch 文件

  • 第三步:提交文件到本地Git仓库

    • 1:使用git add 文件名 将此文件移动到暂存区
    • 2:使用git commit -m '提交描述'命令将文件从暂存区提交到本地Git仓库
    • 3:使用git status命令查看当前的文件状态
  • 第四步:由于本地Git仓库和Github仓库之间的传输是通过SSH加密的,所以连接时需要设置一下

    • 创建SSH KEY,首先看一下你C盘用户目录下有没有.ssh目录,有的话看下里面有没有id_rsa和id_rsa.pub这两个文件,有就跳到到第五步,没有就跟着下面的步骤进行创建。
    • 1、输入下边的命令
      $ ssh-keygen -t rsa -C "youremail@example.com"
      注意ssh-keygen之间没有空格
    • 2、然后回车,询问保存key的位置,默认是在括号里的路径下,你可以修改,也可以不做修改,我不做修改,再按回车,询问是否设置密码,我不设置密码,再按回车,确认密码,同样不输入密码,如下图所示:
      在这里插入图片描述
    • 这时用户下的.ssh目录里就会有id_rsa和id_rsa.pub这两个文件
      在这里插入图片描述
  • 第五步:登录Github,找到右上角的头像图标,打开点进里面的Settings,再选中里面的SSH and GPG KEYS,点击右上角的New SSH key,然后Title里面随便填,再把刚才id_rsa.pub里面的内容复制到Title下面的Key内容框里面,最后点击Add SSH key,这样就完成了SSH Key的加密。具体步骤也可看下面:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 第六步:在Github上创建一个Git仓库,把地址复制下来后面做远程连接会用(注意此处复制SSH链接,因为我们要使用SSH协议)。

  • 第七步:在Github上创建好Git仓库之后我们就可以和本地仓库进行关联了,在本地仓库目录下打开Git Bash Here,输入命令:

1.如果之前关联过远程仓库则要使用下面的命令移除关联的远程仓库
 git remote remove origin
2.然后在执行远程仓库的关联
$ git remote add origin 你的仓库的ssh链接
  • origin后面加的是Github上创建好的仓库的地址

  • 第八步:关联好之后我们就可以把本地库的所有内容推送到远程仓库(也就是Github)上了

  • 总结:其实只需要进行下面几步就能把本地项目上传到Github

    1、在本地创建存放本地Git仓库的文件夹,并将其初始化。

    2,在本地仓库中创建项目, 再通过git add 把项目添加到仓库;

    3、再通过git commit -m "注释内容"把项目提交到仓库;

    4、在Github上设置好SSH密钥后,新建一个远程仓库,通过git remote add origin 你的仓库的ssh链接将本地仓库和远程仓库进行关联(如果本地仓库之前关联过别的仓库则要删除后在进行关联)

    5、最后通过git push -u origin master把本地仓库的项目推送到远程仓库(也就是Github)上

3.11.分支管理

3.11.1.什么是分支?
  • 在版本控制过程中, 使用多条线同时推进多个任务
3.11.2.分支的好处?
  • 同时并行推进多个功能开发, 提高开发效率
  • 各个分支在开发过程中, 如果某一个分支开发失败, 不会对其他分支有任何影响。 失败的分支删除重新开始即可。
3.11.3.分支操作
  • 创建分支:git branch [分支名]
  • 查看分支:git branch -v
  • 切换分支:git checkout [分支名]

在这里插入图片描述

  • 合并分支:
    • 第一步: 切换到接受修改的分支(被合并, 增加新内容) 上:
      git checkout [接受修改的分支]
    • 第二步: 执行 merge 命令:
      git merge [有新内容分支名]

在这里插入图片描述

  • 解决合并分支是产生的冲突
    • 冲突的表现:当两个分支更改了同一个文件的同一个位置而且内容还不一致时,在合并的时候就会产生冲突,git就无法确定保存那个分支的修改内容
      在这里插入图片描述
      在这里插入图片描述
    • 冲突的解决
      第一步: 编辑文件, 删除特殊符号
      第二步: 修改文件达到满意, 保存退出
      第三步: git add [文件名]
      第四步: git commit -m “日志信息”
      注意: 此时 commit 一定不能带具体文件名
      在这里插入图片描述

3.12.团队协作成员邀请

  • 假如开发人员开发一个小项目,感觉一个人开发没有意思想要邀请别人一起开发,此时问题就出来啦,怎么实现哪?
  • 我们以远程仓库为GitHub仓库为例
  • 第一步:先把本地Git仓库中的项目托管到远程仓库
  • 第二步:在GitHub上发出邀请,邀请团队成员
  • 第三步:被邀请人员同意邀请,成为团队成员
  • 第四步:被邀请人员克隆远程仓库到自己的本地
  • 第五步:被邀请人员就可以提交修改了
    在这里插入图片描述
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彤彤的小跟班

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值