| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> 【尚硅谷】Git与GitHub基础全套完整版教程-笔记1 -> 正文阅读 |
|
[开发工具]【尚硅谷】Git与GitHub基础全套完整版教程-笔记1 |
相信大家对Git和GitHub并不陌生,但是在实际操作时可能会碰到问题,一时可能不知道如何下手,甚至不知道如何百度。这没关系!学习这份Git与GitHub基础全套完整版教程,让我们有个系统的认识,打开任督二脉。让我们开始吧。 目录 4.3 基本操作(查看状态/提交暂存区和本地库/历史查看)? 0 尚硅谷_Git&GitHub_前面的话git是一种版本控制工具,从这一点来说,和svn是同一类软件。进一步,svn是集中式版本控制工具,git是分布式版本控制工具。学习git之前,不需要学习svn,但是需要熟悉linux的操作基础。 git学习大纲:
为什么要使用版本控制?从个人角度:在做项目时,涉及到很多方法,很多行代码,如果一点点去改代码会很乱,不利于我们的开发和进度。每一个历史版本都被记录,可以回到某一个历史状态,接着在这个历史状态下进行修改。通俗来讲就是可以回退和撤销操作。 从团队合作角度:每一个都需要开发自己负责的功能,多个人在开发同一个项目时,需要操作同一个类,一般的服务器可能会直接覆盖,不利于团队开发。 1 版本控制工具应该具备的功能
2 版本控制简介2.1 版本控制版本控制是思想,指在工程设计领域中使用版本控制管理工程蓝图的设计过程。在 IT 开发过程中也可以使用版本控制思想管理代码的版本迭代。 2.2 版本控制工具
(1)集中式版本控制工具:CVS、SVN、VSS…… 工作原理:每一个开发人员是一个客户端,文件和版本信息是存储在服务器的,然后客户端和服务器进行交互。缺点:如果服务器一旦宕机,所有的历史数据就丢失了,那个本机(客户端)保存的只是当前的状态,这个我们叫单点故障。 (2)分布式版本控制工具:Git、Mercurial、Bazaar、Darcs……(每个用户机也都有版本历史)意味可以本地库传本地。但是不建议这么做。 工作原理:(以git为例)每一个开发人员在本地就可以进行完整的版本控制,本地就有完整的历史。任何一个人都可以把数据传给别人,这样就避免了单点故障。备注:不太建议本地之间去互相传数据,还是需要使用远程库。 3 Git 简介?3.1 Git 简史?看时间轴回顾git发展的历史。 (1)先从“Linux系统版本控制历史”开始,(【百度百科】Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux具有开放源码、没有版权、技术社区用户多等特点,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。)刚开始,很多人贡献代码,Linus只能手动合并代码,随着系统越来越大,手动合并就不能解决这么庞大的工作了。 (2)2002年,有个商业公司提供了“商业软件:BitKeeper”,授权Linux社区免费使用这个版本控制系统,但不能进行破解。但是有个问题,有些社区人员不按常理出牌。 (3)开发Samba的Andrew试图破解这个协议,被发现之后,收回了免费使用权。2005年,Linus自己用c语言开发了一个分布式版本控制系统git。(历史充满了偶然) (4)2008年,Github上线。 3.2 Git 官网和 Logo官网地址:https://git-scm.com/ Logo:(分支的特性) 3.3 Git 的优势?
3.4 Git 程序安装 windows安装 ?(linux直接yum install -y git)加-y自动选择y,全自动。 下面具体看windows系统安装过程: 1先从官网下载安装包? 2下面默认设置就行:下图(下一步) 3这个的下一步也使用默认 直接下一步 4?选择默认的文本编辑器 5?然后修改环境变量(第一“仅在Git bash中使用Git”,我们就选这个,这样做就完全够用了),下面选项第二个(“在Windows命令行也可以使用Git”,是被认为安全的,理论上是安全的,但是不排除特殊情况,建议不使用) 6?选择客户端本地库和远程库连接方式(1通用连接2使用Windows连接方式,相对来说会有一定的局限性) 7?选择换行符的方式(第一“行末换行符转换方式”,git检查文件时LF 转为 CRLF ,提交时相反,默认使用这个就行) 8?选择终端(第一:Git默认终端(是liunx命令),我们选第一个,默认值;第二:选择Windows终端(wind命令)) 9?使用默认值,勾选第一和第二(第一:启用文件的缓存;第二:启用Git授权的管理器。选择第二个需要安装NET framework c4.5.1以上版本) NET framework安装失败解决方案查看链接: https://jingyan.baidu.com/article/fb48e8bee50ebf6e632e1464.html? 10 等待安装? 11?(1加载他的git Bash终端2查看更新的文档) 装完之后的效果:在任何一个windows文件夹下右键,可以看到Git GUI Here和Git Bash Here。 3.5 Git结构git在本地有什么东西呢?(重要!!) 工作区:写代码的地方 暂存区:打算要提交的东西,但是还没提交 本地库:实实在在存储每一个历史的版本 3.6 Git和代码托管中心?代码托管中心的任务:维护远程库 git还有其他的代码托管中心,例如:
3.7 本地库和远程库3.7.1 团队内部协作3.7.2 跨团队协作?上述的三张图分别代表:岳不群 令狐冲 东方不败。大概有个印象,之后会反复出现。 具有有关本地库和远程库的操作过程,之后的笔记会有。 4 Git 命令行操作?4.1 本地库初始化(进入到自己的工作区目录,每个人的不大一样!!)(老师的:e盘下/may/GitSpaceVideo/WeChat) 命令:
(切换到目录->右键Git Bash Here->用linux命令到对应目录下->初始化) 在linux中以.开始的文件都是隐藏资源,直接用ll命令看不到,可以使用ls -lA命令查看。ll .git/命令查看.git文件夹下的东西。 效果:会在当前目录下生成.get目录(隐藏的) 注意:.git 目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡乱修改。 4.2 设置签名?(本地库初始化后要执行的)形式
作用:用email字符串区分不同开发人员的身份 辨析:这里设置的签名和登录远程库(代码托管中心的账号、密码没有任何关系) 命令(注意下面命令要换成自己的name和email信息) (a)项目级别/仓库级别:(不带参数-)仅在当前本地库范围内有效
????签名信息保存位置:./.git/config 文件 ? ? 使用cat .git/config命令打开这个文件 (b)系统用户级别:登录当前操作系统的用户范围
信息保存位置:~/.gitconfig 文件?(家目录下c/user) 使用ls -lA|less命令查看文件,使用cat ~/.gitconfig命令打开这个文件 级别优先级的三种情况说明:
4.3 基本操作(查看状态/提交暂存区和本地库/历史查看)?4.3.1 状态查看
查看工作区、暂存区状态 4.3.2 添加/撤回->暂存区对于已经add的文件,修改后可以直接commit。命令形式为:
这里先新建了一个good.txt文件。然后执行git add good.txt命令。 将工作区的“新建/修改”添加到暂存区
从暂存区撤回,工作区的文件还是存在的:
4.3.3 提交在提交commit过程中,可能会进入文件的编写环境,这和安装时候选择的vim编辑器有关。命令形式为:
以下代码是跟着老师演示的实际操作来的(不需要进入vim):
总结命令格式为:
4.3.4 查看历史记录(4种查询方法)?第一种:
为了看得清楚一些,多添加几次(三次) 当进行了很多次操作之后,查看日志时,一个屏幕根本放不下。 多屏显示控制方式:空格向下翻页 、b 向上翻页 、q?退出(超过了自动多屏) 第二种:
第三种:
第四种:
HEAD@{移动到当前版本需要多少步} 4.3.5 前进后退?(3种方式)?git在管理历史版本时其实有一个指针,指针的名字叫“HEAD”,方便移动。 本质:指针移动 第一种:基于索引值操作[推荐]?
第二种:使用^符号,只能后退?
注:一个^表示后退一步,n 个^表示后退 n 步 第三种:使用~符号,只能后退
注:表示后退 n 步
4.3.6 reset 命令的三个参数对比?(查看命令帮助文档: git help reset) ①--soft 参数 仅仅在本地库移动?HEAD 指针?(查看状态时绿色提示,本地库和暂存区不同步) ②--mixed 参数 在本地库移动 HEAD 指针,重置暂存区 ③--hard 参数 在本地库移动 HEAD 指针,重置暂存区和工作区 4.3.7 删除文件并找回前提:删除前,文件存在时的状态提交到了本地库。 例子:
找回操作:
删除操作已经提交到本地库:指针位置指向历史记录(回到之前未删除版本) 删除操作尚未提交到本地库:指针位置使用 HEAD(git reset --hard?HEAD) 4.3.8 比较文件差异
例子:
将工作区中的文件和本地库历史记录比较,如果不带文件名则比较多个文件。 说明:记录学习笔记,如果错误欢迎指正!写文章不易,转载请联系我。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 14:45:24- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |