笔记:Git基础

1. 笔记:Git基础

1.1 版本管理

1.1.1 什么是版本管理

版本管理是一种记录文件变化的方式,以便将来查阅特定版本的文件内容。
在这里插入图片描述

1.1.2 人为维护文档版本的问题
  1. 文档数量多且命名不清晰导致文档版本混乱

  2. 每次编辑文档需要复制,不方便

  3. 多人同时编辑同一个文档,容易产生覆盖
    在这里插入图片描述

1.2 Git 是什么

Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。

在这里插入图片描述

1.3 Git 安装

下载地址

在安装的过程中,所有选项使用默认值即可。

查看是否下载成功

在这里插入图片描述

1.4 Git 基本工作流程

git仓库暂存区工作目录
用于存放提交记录临时存放被修改文件被Git管理的项目目录

在这里插入图片描述

1.5 Git 的使用

1.5.1 Git 使用前配置

只需要在使用前配置了一次,后续就不需要再配置了,也可在后续重新配置提交人信息,但重新配置不是必要的

在这里插入图片描述

在使用 git 前,需要告诉 git 你是谁,在向 git 仓库中提交时需要用到。

  1. 配置提交人姓名:git config --global user.name 提交人姓名

  2. 配置提交人姓名:git config --global user.email 提交人邮箱

  3. 查看git配置信息:git config --list
    在这里插入图片描述

如果要修改提交人的信息,直接打上面代码就可以覆盖之前的配置了

修改方法二

拖拽到编辑器中修改

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

注意

  1. 如果要对配置信息进行修改,重复上述命令即可。

  2. 配置只需要执行一次。

1.5.2 提交步骤
  1. git init 初始化git仓库

git文件在文件夹中是被隐藏起来的
在这里插入图片描述

  1. git status 查看文件状态,查看哪些git文件没有被git管理

在这里插入图片描述

No commits yet表示没有被说明
untracked files表示文件夹里的文件没有被git跟踪管理的

  1. git add 文件列表 追踪文件
    把文件添加到暂存区中

在这里插入图片描述

  1. git commit -m 提交信息 向仓库中提交代码,每次提交中只包含一个功能,不能包含多个功能或包含bug修改。
    每次提交的时候都要写提交说明
  2. git log 查看提交记录

在这里插入图片描述

1.5.3 撤销
  • 用暂存区中的文件覆盖工作目录中的文件: git checkout 文件

比如有个文件完成了一半保存在git里,继续编写这个文件后,发现很多错误,想回到编写到一半时的文件的状态

  • 将文件从暂存区中删除: git rm --cached 文件

有些用完就删除的临时的测试文件不想被git管理,不小心保存到git中,这时就应该从暂存区删除

  • 将 git 仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录:git rest --hard commitID

工作目录中的代码存在问题,git项目中提交记录也存在问题,希望将更早的提交记录恢复出来,并且删除有问题的提交记录

在这里插入图片描述

将test.html文件

在这里插入图片描述

表示没有需要提交的

2. Git进阶

2.1 分支

为了便于理解,大家暂时可以认为分支就是当前工作目录中代码的一份副本。

比如在一个分支上开发新功能,在另一个分支上修复其他功能的bug,让我们在不同的环境中做不同的事情,互不影响

使用分支,可以让我们从开发主线上分离出来,以免影响开发主线。
在这里插入图片描述

2.1.1 分支细分

git会产生一条以时间点分割的线,分支线上的每一个时间点都表示一次git的提交

  1. 主分支(master):第一次向 git 仓库中提交更新记录时自动产生的一个分支。

在这里插入图片描述

  1. 、开发分支(develop):作为开发的分支,基于 master 分支创建。

在这里插入图片描述

  1. 功能分支(feature):作为开发具体功能的分支,基于开发分支创建

在这里插入图片描述

功能分支 -> 开发分支 -> 主分支

2.1.2 分支命令
  • git branch 查看分支

在这里插入图片描述

有*+绿色字 代表处于master分支

如果存在其他分支,其他分支又没处于选中状态,它们为白色的,并且前面没有*

  • git branch 分支名称 创建分支

在这里插入图片描述

  • git checkout 分支名称 切换分支

在这里插入图片描述

注意 在切换分支之前,当前分支的工作一定要提交(git commit -m 提交信息)到git仓库中,要保持当前分支工作区是完全干净的状态,再切换分支

  • git merge 来源分支 合并分支
    例如把开发分支合并到主分支中,合并后开发分支还是存在的,还能切换到开发分支继续进行开发

在开发分支上创建的文件不应该在主分支上被看到,主分支上的文件也不应该在开发分支上被看到

  • git branch -d 分支名称 删除分支(分支被合并后才允许删除)(-D 强制删除)

不允许删除目前所在的分支,必须要切换到别的分支才能删除

2.2 暂时保存更改

在git中,可以暂时提取分支上所有的改动并存储,让开发人员得到一个干净的工作副本,临时转向其他工作。

使用场景:分支临时切换,在开发新功能的时候,老板叫你修改以前的功能的bug,但你不想提交现在未完成的新功能文件然后切换旧功能文件修bug

就像是剪切板,把目前的分支剪切到剪切板里,就得到了干净的工作副本去切换成旧功能的分支进行修改bug

在使用前一定要搞清楚目前所在的分支

工作副本干净状态
在这里插入图片描述

  • 存储临时改动:git stash
  • 恢复改动:git stash pop

3. Github

在版本控制系统中,大约90%的操作都是在本地仓库中进行的:暂存,提交,查看状态或者历史记录等等。除此之外,如果仅仅只有你一个人在这个项目里工作,你永远没有机会需要设置一个远程仓库。

只有当你需要和你的开发团队共享数据时,设置一个远程仓库才有意义。你可以把它想象成一个 “文件管理服务器”,利用这个服务器可以与开发团队的其他成员进行数据交换。

3.1 注册

  1. 访问github首页,点击 Sign up 连接。(注册)
    在这里插入图片描述

    1. 填写用户名、邮箱地址、GitHub登陆密码

在这里插入图片描述

  1. 选择计划

在这里插入图片描述

  1. 填写 GitHub 问题

在这里插入图片描述

  1. 验证邮箱
    在这里插入图片描述

  2. GitHub 个人中心
    在这里插入图片描述

点击start a project 就可以创建了

3.2 多人协作开发流程

A(项目经理)
B(普通程序员)

  • A在自己的计算机中创建本地仓库
  • A在github中创建远程仓库
  • A将本地仓库推送到远程仓库
  • B克隆远程仓库到本地进行开发
  • B将本地仓库中开发的内容推送到远程仓库
  • A将远程仓库中的最新内容拉去到本地

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

3.3 创建仓库

1. 填写仓库基本信息
在这里插入图片描述

仓库名称不能与你其他仓库名称一样,它需要唯一的名字

README文件对仓库的信息描述,是给其他开发者看的

2. 将本地仓库推送到远程仓库
在这里插入图片描述

复制文本框里的地址
在这里插入图片描述

弹出登录框,登录后重新回去刷新网页就可以了
在这里插入图片描述

为远程仓库地址起别名为origin(可自定义)
在这里插入图片描述

  1. git push 远程仓库地址 分支名称

  2. git push 远程仓库地址别名 分支名称

3. git push -u 远程仓库地址别名 分支名称
-u 记住推送地址及分支,下次推送只需要输入git push即可
- 要去控制面板凭据里删除保存的登录记录,才可以弹出登录框,才可以执行
4. git remote add 远程仓库地址别名 远程仓库地址

第二次推送到远程仓库的时候没有弹出登录框,是因为Windows操作系统帮我们存储了用户名和密码,在控制面板,凭据管理器,windows凭据,里可以删除
在这里插入图片描述

3.4 拉取操作

3.4.1 克隆仓库

克隆远端数据仓库到本地:git clone 仓库地址

3.程序员B把程序员A的远程仓库克隆到自己的仓库中
复制地址
在这里插入图片描述

在这里插入图片描述


4.B将本地仓库中开发的内容推送到远程仓库

需要程序员A邀请程序员B成为项目开发者才能往远程仓库传输代码文件
在这里插入图片描述

程序员A要把这个邀请链接发送给程序员B,程序员B在登录后在这里插入图片描述

程序员B推送到远程仓库
在这里插入图片描述

cd切换地址
在这里插入图片描述

3.4.2 拉取远程仓库中最新的版本

拉取远程仓库中最新的版本:git pull 远程仓库地址 分支名称

git pull是在本地有这个仓库的基础上使用,拉取过来的是最新的仓库

git clone 仓库地址是在本地没有这个仓库的情况下使用,只使用一次,使用了以后,本地就会有这个仓库,后面只需要用git pull就可以了

如果远程仓库的版本高于本地仓库的版本,本地仓库是不能向远程仓库提交的,本地仓库必须要先拉取远程仓库的内容到本地仓库,然后再向远程仓库进行提交

5.A将远程仓库中的最新内容拉去到本地
在程序员A的本地地址进行操作
在这里插入图片描述

3.5 解决冲突

在多人同时开发一个项目时,如果两个人修改了同一个文件的同一个地方,就会发生冲突。冲突需要人为解决。

第一个人向远程仓库提交了版本,第二个人的本地仓库没有这个版本,导致远程仓库版本高于本地仓库版本,所以推送不上去。
1、第二个人需要把远程仓库中的版本拉取到本地,但由于2个人修改了同一个文件同一个地方,就会造成冲突,2、第二个人需要在本地仓库先把冲突解决掉,3、然后再向远程仓库中提交才能提交成功。

冲突
在这里插入图片描述

解决冲突
在这里插入图片描述

3.6 跨团队协作

比如说你要完成一个网页效果,但是这个效果写出来要花费一些时间,你不想花费这个时间,于是,你在GitHub中找到了一个正好能够实现这个效果的库。
但是在使用的过程当中,发现这个库的功能并不完善,然后你将这个库进行了一番完善,此时,你就可以将你完善的代码提交给原仓库的作者。
如果原仓库的作者认为你提交的代码非常有价值,原仓库的作者就会将你写的代码合并到他的仓库当中,如何才能像其他的仓库中贡献代码呢?

程序员C在浏览器网址上输入程序员A的库的网址,进入了程序员A的库
在这里插入图片描述

  1. 程序员 C fork仓库 把程序员A的仓库复制一份,放到程序员C的账户中
    在这里插入图片描述

  2. 程序员 C 将仓库克隆在本地进行修改

  3. 程序员 C 将仓库推送到远程

  4. 程序员 C 发起pull reqest

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

  1. 原仓库作者审核
    在这里插入图片描述

  2. 原仓库作者合并代码
    在这里插入图片描述

3.7 ssh免登陆

https协议仓库地址:https://github.com/itcast-frontEnd/git-demo.git

在这里插入图片描述

公钥放在GitHub中
私钥(秘钥)放在用户中

1、生成秘钥:ssh-keygen

可以选择用默认值,只需要一直回车就可以了
在这里插入图片描述

选择当前使用电脑的用户
在这里插入图片描述

第一个文件是私钥,必须保留在开发者的电脑中

在这里插入图片描述

第二个文件是公钥,把它放在GitHub网站中
复制代码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

粘贴
在这里插入图片描述

点击USE ssh 然后复制地址
在这里插入图片描述

在这里插入图片描述

2、秘钥存储目录:C:\Users\用户\.ssh

3、公钥名称:id_rsa.pub

4、私钥名称:id_rsa
在这里插入图片描述

在这里插入图片描述

3.8 GIT忽略清单

将不需要被git管理的文件名字添加到此文件中,在执行git命令的时候,git就会忽略这些文件。

比如node文件中下载的第三方模块文件夹没有必要被管理

git忽略清单文件名称:.gitignore

将工作目录中的文件全部添加到暂存区:git add .

不想被管理什么就写什么
在这里插入图片描述

为仓库添加详细说明

在文件夹内新建一个readme.md
然后把这个文件提交上去
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值