在这里插入图片描述

一、起步

1. 关于版本控制

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在集中化的版本控制系统中,最典型的代表就是SVN,在十年以前最流行的版本控制系统是SVN,但是随着时代的发展已经无法满足我们的需求了。

在这里插入图片描述

2. Git基础概念

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


二、Git基础

1. 安装并配置Git

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2. Git的基本操作

在这里插入图片描述

在这里插入图片描述
初始的必要文件是很重要的,如果删除了.git隐藏目录,那这个项目的仓库也销毁了
在这里插入图片描述
.git文件夹里的初始文件如下:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
Untracked files表示以下文件都是未被跟踪的
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
两个红色问号代表 :未被追踪的文件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
Untracked: 未跟踪
Unmodified: 未修改
Modified: 已修改
Staged: 已暂存
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
撤销操作危险性比较高,慎重操作!
在这里插入图片描述
在这里插入图片描述

(前面的A和M)由红色变成绿色说明文件都放到暂存区里了
在这里插入图片描述

在这里插入图片描述
提醒:如果是“git reset HEAD .” 则意为移除暂存区所有的文件
在这里插入图片描述
在这里插入图片描述
示范:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
绿色的D代表该文件已经移除了,下一次提交不会带上它,双问号意味着文件不在仓库了,在工作区
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

使用步骤:
创建一个.gitignore文件,在文件中写明需要忽略的文件,同时创建一个test文件夹用于测试忽略文件
在这里插入图片描述
在这里插入图片描述
git status -s查看文件状态,只有文件.gitignore的返回状态,而没有涉及index.css和test文件夹,因为忽略文件的存在,他们已经默认被忽略了
在这里插入图片描述

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

在这里插入图片描述
注意:在切换回旧版本后,若想查看所有提交历史的话,应该使用git reflog --pretty=oneline

实际演示如下:(先展示以往的提交历史,然后回退到80f2607版本,查看目前的提交历史,再跳转回最新的版本)
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


三、Github

1. 了解开源相关的概念

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
作为前端人员,如果以后有了自己的开源项目,可以使用MIT协议
博客链接link

在这里插入图片描述

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

在这里插入图片描述
Git只是一个版本控制工具,但是Github是一个网站,一个开源项目托管平台

2. 注册账号

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3. 远程仓库的使用

注意:建议仓库名称不要用中文同时不要包含空格

3.1 新建空白远程仓库

在这里插入图片描述

3.2 新建空白远程仓库成功

在这里插入图片描述

3.3 远程仓库的两种访问方式

在这里插入图片描述

3.4 基于 HTTPS 将本地仓库上传到Github

在这里插入图片描述

演示:
如在本地有现成Git仓库,则在git文件夹里打开Git Bash Here,将红框内的代码(以操作界面的代码为准)逐行复制,在Git Bash Here运行,弹出登录框,登录成功后授权,Git Bash Here的输入框弹出以下信息(100%)即代表向我们的仓库成功上传文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

git push命令

(本地向远程更新)将本地仓库中的内容推送到远程仓库中:当本地仓库中文件更新后,需要向远程仓库更新可以使用git push命令

演示说明:
首先我们在本地仓库git文件夹中新建了一个index.js文件,相当于本地仓库进行了更新,我们想把本地仓库的更新同步到远程仓库中,首先(git add .)将index.js文件添加到暂存区,然后(git commit -m “新增了js文件”)将文件从暂存区提交到本地仓库,最后git push更新远程仓库(第一次推送给远程仓库需要执行完整git push代码,在这之后的更新则只需要在Git Bash Here中输入简短git push即可)
在这里插入图片描述

3.5 SSH key

在这里插入图片描述

3.6 生成 SSH key

在这里插入图片描述

生成SSH key:
在这里插入图片描述
在这里插入图片描述

3.7 配置 SSH key

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

3.8 检测Github的SSH key是否配置成功

在这里插入图片描述

示范:
在这里插入图片描述

3.9 基于SSH将本地仓库上传到Github

在这里插入图片描述

演示:
创建一个空白仓库在这里插入图片描述
点击SSH选择该访问方式
运行方框的指定代码,向远程仓库推送内容
在这里插入图片描述
在这里插入图片描述

3.10 将远程仓库克隆到本地

在这里插入图片描述
假如本地仓库被删除了,可以克隆远程仓库还原文件。
在这里插入图片描述

如何得到远程仓库的地址:

  1. 选择Code
  2. 选择访问方式(SSH比较方便一点)
  3. 复制远程仓库的地址
    在这里插入图片描述

四、Git分支(重点)

1. 本地分支操作

1.1 分支的概念

在这里插入图片描述

1.2 分支在实际开发中的作用

在这里插入图片描述

1.3 main主分支(master现在叫main)

注意:现在的版本,master被更换成了main,所以是main主分支
术语master的更换背景详情:link
在这里插入图片描述

1.4 功能分支

在这里插入图片描述

1.5 查看分支列表

在这里插入图片描述

1.6 创建新分支

在这里插入图片描述

1.7 切换分支

在这里插入图片描述

演示:
git branch 查看分支
在这里插入图片描述

1.8 分支的快速创建和切换

在这里插入图片描述

演示:
(要注意,新建并切换命令前,一定要先回到main主分支上,再进行新建切换命令)
在这里插入图片描述

1.9 合并分支

在这里插入图片描述

演示(实际开发流程):
如我们的任务是写login登录分支的功能,在完成login分支各个文件的编写后,我们首先将文件放到暂存区,然后提交到仓库,最后合并login分支给main分支
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

1.10 删除分支

在这里插入图片描述
注意:删除分支的前提是当前不在它本身上,需要切换到其他分支上再进行删除操作。

git branch -D reg)删除本地仓库的分支(特定用于该分支没有和main主分支合并的情况下,需要强制删除该分支):
在这里插入图片描述

1.11 遇到冲突时的分支合并

在这里插入图片描述

演示描述:
(首先在reg分支上时,打开login.html文件进行修改,然后进行文件转暂存区,再提交给仓库,之后切换为main分支,同样打开login.html文件进行修改但是修改内容不一样,再进行暂存区和提交仓库操作,最后进行在main分支上合并reg分支,因为在不同的分支上对同一个文件做了不同的修改,于是产生代码冲突)
演示如下:

ASUS@LAPTOP-LSM1BD33 MINGW64 /d/1学习资料/计算机类/Web前端/测试/可删/project01 (reg)
$ git branch
  login
  main
* reg

ASUS@LAPTOP-LSM1BD33 MINGW64 /d/1学习资料/计算机类/Web前端/测试/可删/project01 (reg)
$ git status -s
 M login.css
 M login.html

ASUS@LAPTOP-LSM1BD33 MINGW64 /d/1学习资料/计算机类/Web前端/测试/可删/project01 (reg)
$ git add .

ASUS@LAPTOP-LSM1BD33 MINGW64 /d/1学习资料/计算机类/Web前端/测试/可删/project01 (reg)
$ git commit -m "在reg分支上修改了login.html"
[reg b764b16] 在reg分支上修改了login.html
 2 files changed, 7 insertions(+)

ASUS@LAPTOP-LSM1BD33 MINGW64 /d/1学习资料/计算机类/Web前端/测试/可删/project01 (reg)
$ git status -s

ASUS@LAPTOP-LSM1BD33 MINGW64 /d/1学习资料/计算机类/Web前端/测试/可删/project01 (reg)
$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.

ASUS@LAPTOP-LSM1BD33 MINGW64 /d/1学习资料/计算机类/Web前端/测试/可删/project01 (main)
$ git status -s

ASUS@LAPTOP-LSM1BD33 MINGW64 /d/1学习资料/计算机类/Web前端/测试/可删/project01 (main)
$ git status -s
 M login.html

ASUS@LAPTOP-LSM1BD33 MINGW64 /d/1学习资料/计算机类/Web前端/测试/可删/project01 (main)
$ git add .

ASUS@LAPTOP-LSM1BD33 MINGW64 /d/1学习资料/计算机类/Web前端/测试/可删/project01 (main)
$ git commit -m "在master分支上修改了html文件"
[main 91663b0] 在master分支上修改了html文件
 1 file changed, 1 insertion(+)

ASUS@LAPTOP-LSM1BD33 MINGW64 /d/1学习资料/计算机类/Web前端/测试/可删/project01 (main)
$ git checkout main
Already on 'main'
Your branch is ahead of 'origin/main' by 1 commit.
  (use "git push" to publish your local commits)

ASUS@LAPTOP-LSM1BD33 MINGW64 /d/1学习资料/计算机类/Web前端/测试/可删/project01 (main)
$ git merge reg
Auto-merging login.html
CONFLICT (content): Merge conflict in login.html
Automatic merge failed; fix conflicts and then commit the result.

在这里插入图片描述
返回提示"Merge conflict in login.html"意为login.html的合并冲突
手动解决冲突:
在这里插入图片描述
HEAD (Current Change):在main主分支上修改的情况
reg (Current Change):在reg分支上修改的情况
Accept Current Change(采用当前更改):只保留当前的修改,也就是main主分支上的修改
Accept Incoming Change(采用传入的更改):使用reg分支上的修改
Accept Both Changes(保留双方更改):双方的修改都保留,这时需要我们手动解决冲突
Compare Changes(比较变更):比较按钮
手动解决冲突之后,提交以下命令
在这里插入图片描述

2. 远程分支操作

2.1 将本地分支推送到远程仓库

在这里插入图片描述

演示如下:

  1. 可以看到远程仓库只有main主分支,而我们本地的login和reg分支都不在里面。
    在这里插入图片描述在这里插入图片描述
  2. 因为是第一次推送,故需要带 -u 参数(远程仓库的别名默认使用origin),这里要注意在分支经历过第一次推送之后,后面更新只需要使用git push 将代码推送到远程分支
    在这里插入图片描述
  3. 输入命令后刷新我们的远程仓库,可以发现多了一个register分支
    在这里插入图片描述

2.2 查看远程仓库中所有的分支列表

在这里插入图片描述
远程仓库的名称默认是origin

演示:
在这里插入图片描述

2.3 跟踪分支

在这里插入图片描述

演示:

  1. 从远程仓库中,把对应的远程分支下载到本地仓库,保持本地分支和远程分支名称相同(从远程仓库下载分支过来的话,下载到本地仓库这个分支它会是在远程仓库的名字),原来在本地叫reg,从远程仓库下过来它叫register
    在这里插入图片描述
    在这里插入图片描述
  2. 从远程仓库中,把对应的远程分支下载到本地仓库,并把下载的本地分支进行重命名
    在这里插入图片描述
    说明:
    本地分支名称:在本地取什么名字
    远程仓库名称:默认为origin
    远程分支名称:想要从远程仓库中下载的分支
    在这里插入图片描述

2.4 拉取远程分支的最新的代码

在这里插入图片描述

演示:
首先在远程仓库里register分支下直接修改login.js文件,这样相较于本地仓库的reg分支,本地需要更新了。
切换到register分支,点击login.js文件
在这里插入图片描述
点击修改按钮,进行编辑
在这里插入图片描述
修改完毕之后提交修改,这样远程仓库分支下的login.js就是更新了
在这里插入图片描述
想更新本地对应分支的login.js,如下操作(git pull)
在这里插入图片描述
此时本地对应分支的login.js已经更新,与远程仓库中对应分支的login.js同步了
打开本地login.js文件检查一下,已经完成更新
在这里插入图片描述

2.5 删除远程分支

在这里插入图片描述

演示:
输入指令,删除远程仓库的register分支
在这里插入图片描述
命令执行后,远程仓库里只存有main主分支了,原来的register分支已经被删除
在这里插入图片描述


总结

在这里插入图片描述

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐