哔哩哔哩千峰教育Git教程笔记(安装、分支、协作、冲突、GitHub、gitee、vscode集成git)
Git
- 介绍
- Git和SVN的区别
- Git安装
- Git初始化
- 设置用户签名
- 初始化本地库
- Git工作机制
- 添加暂存区
- vim编辑器
- git add添加到暂存区
- git status查看状态
- git commit -m提交到本地库(历史区)
- 版本穿梭
- git reset --hard是直接回退到工作区
- git log和git reflog
- git reset --soft是回退到暂存区
- git reset 和 git revert
- 分支
- q
- 新建分支
- 切换分支
- 合并分支
- 删除分支
- 分支合并与冲突
- 团队协作
- 申请GitHub账号
- 创建仓库
- 提交到远程仓库
- 团队协作与冲突
- 不同文件
- 相同文件
- 团队协作的分支管理
- 删除分支
- 跨团队协作
b站地址:[https://www.bilibili.com/video/BV1cR4y1d7Wd?p=1&vd_source=1bdd66bea139a5dcaef252c4d4e83e6e]
介绍
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
- 版本控制
版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。 - 团队协作
从单兵作战转换为团队开发
Git和SVN的区别
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己的代码推送到中央服务器。集中式版本控制系统是必须联网才能工作。
Git是分布式版本控制系统,没用中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网,因为版本都在自己的电脑上,可以离线工作。
Git 与 SVN 区别点:
- Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
- Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
- Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
- Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
- Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
Git安装
网址:https://git-scm.com/downloads
一些协议,点next
安装路径,我选择了在D盘
选择开始菜单文件夹
选择一个编辑器,默认Vim
将来每次创建完Git,它要起一个分支的名字,主分支默认叫‘master’。每次只要将一个目录给Git来管理,Git就会把这个目录初始的这个分支的名字叫做master。也可以选下面的自定义一个名字。
第一个:只能通过右键的形式来使用Git
第二个:在例如vscode等的终端中也可以使用Git
一个协议,默认next
默认next
默认next。转换换行符。
打开的终端,第一个是Git自带的,第二个是windows自带的
这个是说将来从远程仓库拉取代码之后怎么处理,默认next。
Git的一个凭证管理器。将来在连接远端的服务器的时候,输入完第一次用户名密码之后,就不用再次输入了,凭证就帮你存下来了。next!
需不需要用这个缓存。next!
一些实验性的功能,这些功能可能会有一些未知的bug,默认不钩,Install安装。
Finish
只要在默认的目录下面右击,能出现这两个,就说明安装成功了。
git --version 可以查看版本号
Git初始化
设置用户签名
签名的作用就是用来标识用户,以区分不同的开发人员。这个和未来申请GitHub这个账号是没有关系的。这个邮箱名可以瞎写,只要符合邮箱格式就好了,但是建议就写自己平常用的邮箱。 --global
全局设置,就是说以后不管在哪个目录打开Git都不用再设置一遍了。
Ctrl + / -
可以放大/缩小字体
git config --global user.email “自己设置的邮箱”
git config --global user.name “自己设置的用户名”
只要在C盘的用户下的你的电脑名字下的.gitconfig文件里打开能看到如下,就说明配置成功了。
初始化本地库
希望一个文件夹被Git管理的话,就要在这个文件夹下进行Git初始化
可以在文件夹下直接右击选Git Bash Here
就可以直接进入这个目录
也可以在这个终端里
cd 名字
进到要去的文件下面
cd ..
返回上一层目录
ls
能看到文件夹里的东西
将hello文件夹作为Git管理的授权文件夹
- 执行
git init
命令,出现.git文件夹。(这个文件夹是一个隐藏文件夹) - .git文件夹就是将来记录你所有的版本的。
- git不光管理hello一个文件夹,包括所有的子文件夹和子文件都会被管理。
如果没有看到.git这个文件夹,可能是因为设置了 不显示隐藏的文件,按照下图打开即可。
ls -a
就能看到hello文件夹下所有的东西。
Git工作机制
托管平台
- 局域网(内网)
- gitlab
- 公网(外网)
- gitlab
- github
- gitee
添加暂存区
vim编辑器
在hello文件夹下右键,点击Git Bash Here
,输入git init
,成功创建.git文件夹,可以用vim 1.txt创建文件
第一次进来之后,按键盘的i
键,变成INSERT模式,就能输入了。
输入完之后,按Esc键,并打出:wq
然后回车就能退出。
cat 1.txt
就能查看文件夹下的内容
git add添加到暂存区
git add 文件夹名字
,就能把这个文件夹添加到暂存区 暂存区不能存放空文件
这个下面的警告是说,以及帮你自动转换了,因为Linux和windows的不一样有些地方
git status查看状态
输入git status
可以查看状态。
文件提交到暂存区,只是复制一份到暂存区,工作区还是有文件的。
git rm --cached 1.txt
就把文件从暂存区删除了
如果要将工作区内的所有文件都提交到暂存区
只要输入git add .
或者git add --all
就可以了
git commit -m提交到本地库(历史区)
git commit -m "我是第一个版本"
>>把暂存区的内容放到历史区,""里的内容就是备注,你干了些啥。
git log
>>查看版本信息
如果说我修改了1.txt文件,要把它添加到历史区,添加了222222
版本穿梭
git reset --hard是直接回退到工作区
> git reset --hard HEAD^ 回退到上一次提交的版本
> git reset --hard HEAD^^ 回退到上上次提交的版本
> 也可以用~来代替
> git reset --hard HEAD~2 回退到上上次提交的版本
> git reset --hard HEAD~3 回退到上上上次提交的版本
现在有四条内容,假设我要退回上一条333333
可以看到,工作区的内容也直接回退到了333333
git log和git reflog
git log
这个命令只能显示的是指针以及之前的操作记录。git reflog
能查看本地库所有的操作记录
git reset --soft是回退到暂存区
git reset --soft 工作区的版本不会消失
用处:
1.加入说这个注释555555写错了,要重新写一个注释。重新写个注释再来一个提交就很麻烦,所以可以用soft回退到上一个版本,这个版本是放到暂存区中的,再修改一下注释就好了。
2.假如说我在1.txt文件里的A功能已经完成了,还新增了一个B功能。开始2.txt的文件,当写的时候发现1.txt文件里的B功能又Bug,这个时候就可以:
- 先回退到上一个版本,把B功能放在暂存区
- 在工作区修改B功能的Bug,
- 把B功能以及B功能修改的bug,一起提交到暂存区
- 合并之后再提交到历史区,只生成一条记录
git reset 和 git revert
把在工作区的2.txt文件提交到暂存区,再提交到历史区(注释2.txt)
在2.txt文件里添加 一个新功能111111
把这个新功能也提交到历史区
git revert要比git reset 少一个^。如果是同样的操作的话。
git log 就能看到 新增了一个记录
2.txt里也没有了1111这个记录
分支
q
当出现:的时候,按q就可以了
新建分支
git branch 分支名
新建list分支
假设2.txt完成
上传到历史区
git branch
查看分支
在工作区新建3.txt是list分支的内容
切换分支
git checkout 分支名
切换到指定的分支
回到master分支,工作区内list分支下的内容就不在了。说明切换分支的时候,不同的分支对应着不同的工作区
合并分支
在master下,执行 git merge list
就把list分支和master合并在了一起。说是合并,其实是将指针,指向了master和list,都指向了最新的。
删除分支
git branch -d list
删除list分支
分支合并与冲突
在主分支master下新建一个util.js文件
提交到了历史区
创建一个login分支
在login这个分支下,修改了util.js这个文件
在login分支下,提交until.js到历史区
切换回master主分支
login分支下的内容会消失,因为不属于这个分支
切换回主分支后,假设修改了util.js里的一个bug
将master主分支下修改的内容提交到历史区
切换回login分支,就没有主分支刚刚的内容了
切换到master主分支
合并login分支
合并失败,在vscode里打开util.js.txt文件
在记事本打开文件
都保留之后
把文件提交到暂存区
提交到历史区
可以看到master主分支下的内容是都在的
切换到login分支下的时候,还是原来的。
但是目的已经达到了:因为将来合并代码,还是要放到主分支上,主分支既有修复的bug,又有login合过来的代码
团队协作
申请GitHub账号
网址:https://github.com/
创建仓库
origin代替后面的名字,可以写别的名字
git remote -v
可以查看这个push的地址
git remote remove origin
可以撤销这个origin这一步
提交到远程仓库
git push origin master
把主分支master,push到创建的仓库里
在util.js.txt里新增一条,添加到暂存区,添加到历史区并备注名字,push到仓库
git push -u origin master
这样就能默认,下次只要git push
就能推到仓库了
不建议在远程仓库修改,但是也能改
远程仓库改变了之后,本地仓库是不会变的。要把远程仓库的更新拉到本地仓库,在更新完之后再在本地仓库修改,不然会有冲突。
git pull origin master
就能把远程仓库的给拉取过来,本地库中就会有存在了.
假如说仓库和本地库同时修改了
提交本地库,同时修改了远程仓库的,把远程仓库的拉取过来就会有警告,自己选择。
然后再添加到暂存区,添加到历史区,放到远程仓库。
团队协作与冲突
网站视频:https://www.bilibili.com/video/BV1cR4y1d7Wd?p=14&vd_source=1bdd66bea139a5dcaef252c4d4e83e6e
不同文件
这个可以分享
假设有另一个人,他将上面的地址克隆到了自己的电脑。
现在有1和2两个人在团队协作,1将远程仓库里的内容克隆到了自己的电脑上,新增了一个文件A,push到了远程仓库。这个时候远程仓库就有了A。但是2的电脑里没有A。2这个时候也新增了一个文件B,想要push到远程仓库,这个时候会出问题,说你必须先把远程仓库的pull拉下来,然后再进行push。那就先拉去回来再push上去。因为修改的不是同个文件,所以不会遇到任何冲突问题。
这个可以邀请人,这样那个人就有了push的权限。
相同文件
假如说两个人都修改了同个文件,就会遇到冲突,手动选择一下就好了。
团队协作的分支管理
添加login分支
如果别人要拉去这个login,就用 git pull origin login
拉取下来,直接切换到login就能修改
修改之后就能push到远程仓库
也可以再创建一个分支
删除分支
删除远程的分支 git push origin :名字
.
跨团队协作
用fork
叉子叉到自己的仓库,再用 pull request
s 告诉别人。
https://www.bilibili.com/video/BV1cR4y1d7Wd?p=16&spm_id_from=pageDriver&vd_source=1bdd66bea139a5dcaef252c4d4e83e6e
哔哩哔哩千峰教育Git教程笔记(安装、分支、协作、冲突、GitHub、gitee、vscode集成git)相关推荐
- Git详细用法:Git概述 安装 常用命令 分支操作 团队协作 、GitHub、idea集成Git、idea集成GitHub、Gitee 码云、GitLab
0 课程介绍 说明: 在公司想要使用idea集成git: 首选需要下载安装Git(查看第2章) 之后在中设置用户签名(查看3.1) 然后在idea中集成Git(查看第7章) - 0.1 学习目标 第1 ...
- php服务器视频教程,从PHP基础到实战高手 高性能Linux服务器构建实战 千峰教育PHP全新版高级视频教程...
从PHP基础到实战高手 高性能Linux服务器构建实战 千峰教育PHP全新版高级视频教程 非常厉害的一套PHP实战课程,系统的学习完成后可以从零基础的PHP新手, 成长为能独立完成高性能服务器部署的实 ...
- 网络工程师千峰教育学习总结第一天
网络工程师千峰教育学习总结第一天 第一阶段:网络基础.交换路由技术.高级网络技术 第二阶段:Linux安全运维.项目综合实战 第三阶段:前端.数据库.后台代码安全.python安全应用开发.代码审计 ...
- 千峰HTML5+CSS3学习笔记
千峰HTML5+CSS3学习笔记 文章目录 千峰HTML5+CSS3学习笔记 写在前面 1. 前言 2. HTML 3. CSS 3.1 选择器 3.2 CSS属性 4. 盒子模型 4.1 溢出属性 ...
- Git SSH Key 生成并添加到github/gitee步骤
Git SSH Key 生成并添加到github/gitee步骤 在本地生成密钥 大家好,这里是坚果前端小课堂,欢迎大家关注我的公众号,"坚果前端" Git是分布式的代码管理工具, ...
- Git学习笔记:标签管理以及GItHub
前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...
- Git学习笔记:分支管理3
前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...
- Git学习笔记:分支管理(2)
前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...
- VSCode集成Git
VSCode集成Git流程 一,下载git并配置环境变量 1.从git官网下载一个git安装包,官网下载地址 git下载. 2.下载完成后,一路NEXT走下去,只需注意下面这几个页面的配置,按需勾选( ...
最新文章
- AlexeyAB DarkNet YOLOv3框架解析与应用实践(六)
- 聊聊接口优化的几个方法
- 今日头条告今日油条赔 200 万,各大公司表示不服
- 76. 最小覆盖子串
- Oracle中Null与空字符串''的区别
- 移动WEB的页面布局
- JavaScript算法(实例七)空瓶子换汽水问题
- Matplotlib 中文用户指南 2 安装
- 使用ViewModel模式简化WPF TreeView
- Firefox Javascript引擎变成单线程
- chrome无法拖拽离线安装CRX格式插件解决方法
- 【笔记】定积分的近似计算
- 开始菜单下的计算机怎么能看到盘符
- 达梦数据库DM7入门教程-安装
- java udp发16进制数据_如何通过接口强制发送UDP数据包?
- 移动光猫RAISECOM的配置方法
- win7浏览器主页修改不过来_Win7系统IE浏览器无法更改主页的具体解决方法
- 计算机资源管理器经常停止运行,解决win10资源管理器经常停止工作的方法
- 将大文本文件分割成多个小文件
- RGB颜色与颜色名称对照表
热门文章
- Ubuntu为网卡添加ip地址
- java之JVM学习全过程学习记录
- (增加虚拟机)安装lite自带的benchmark和使用方法
- 计算机网络化最主要的特点是,【2018年职称计算机考试Internet考前押题及答案2】 中级会计职称有用吗...
- 27行代码批量将PPT转成PDF,属实强大啊!
- 鲁迅美术学院考计算机几级,鲁迅美术学院考研难吗?一般要什么水平才可以进入?...
- kconfig常用语法,入门必看
- pickup 类的使用
- 【愚公系列】2021年12月 Python教学课程 01-全方位解读Python
- 测试你的大脑思维类型是“左脑型”还是“右脑型”