IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Git教程1.0 -> 正文阅读

[开发工具]Git教程1.0

1.版本控制

  1. 简而言之,备份与记录
  2. 作用:
    2.1 记录文件的所有历史变化
    2.2 错误恢复到某个历史版本
    2.3 多人协作开发编辑同一个文件

1.1 三类版本控制

  1. 本地版本控制系统
    在这里插入图片描述

  2. 集中化的版本控制系统

    典型代表——SVN
    在这里插入图片描述

  3. 分布式版本控制系统

    典型代表——GIT
    在这里插入图片描述

2.Windows安装Git

2.1 下载安装

镜像下载Git网站:https://npm.taobao.org/mirrors/git-for-windows/
下载最新版本即可

安装很简单,不再赘述安装过程

  1. 安装好之后,鼠标右键可看到
    在这里插入图片描述
    GUI很少用,一般使用命令窗口Bash
  2. 配置用户信息(必须配置)
git config --global user.name "自定义名字"					#配置用户名字
git config --global user.emain "你使用的邮箱"				#配置用户邮箱
git config --global  --list									#查看当前用户(global)配置

2.2 环境变量配置

配置环境变量:为了能全局使用,可以不配置

但使用idea,如果报错:idea file not found: git.exe‘git’ 不是内部或外部命令,也不是可运行的程序,时,就需要配置

3.Git文件的三种状态与工作模式

状态描述
已提交(committed)表示数据已经安全的保存在本地数据库
已修改(modified)表示修改了文件,但还没保存到数据库中
已暂存(staged)表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中

本地工作区:

工作区域描述
工作区简单的理解为在电脑里能看到的目录,比如自己创建的本地项目目录
暂存区Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git自动创建的第一个分支master,以及指向master的一个指针叫HEAD
Git仓库工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库

请添加图片描述

4.本地版本库初始化与文件提交

4.1 完整工作区域

工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory),如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。
在这里插入图片描述

4.2 文件提交

  1. 随便找个文件夹,鼠标右键调出Git命令窗口
  2. git init创建一个.git文件夹
  3. 查看设置,才能看到.git文件
    在这里插入图片描述
  4. 新建一个.txt文件,并将它加载到暂存区
    在这里插入图片描述
git status									#查看当前文件夹文件状态
git add test.txt							#将test.txt加载到缓存区
git add .									#将所有文件加载到缓存区
  1. 提交文件到Git仓库
 git commit test.txt -m "自己写描述"		#提交文件到Git仓库
 git ls-files							#查看仓库的文件列表

在这里插入图片描述

5.版本切换

5.1 文件修改与比对

  1. 修改之前提交的文件,git status查看状态
    在这里插入图片描述
  2. 重新上传到暂存区,git add .,查看状态
    在这里插入图片描述
  3. 上传到本地仓库,git commit -m "修改第一次后提交",查看状态
    在这里插入图片描述
  4. 查看提交日志记录,git log
  5. 与版本库内容进行比较,git diff HEAD -- test.txt
    查看暂存区的文件
    在这里插入图片描述

差异比较说明:
---:表示变动前的文件
+++:表示变动后的文件
变动的位置用两个@作为起首和结束
@@ -1,2 +1,3 @@:- 表示第一个文件, 1 表示第1行,2 表示连续两行, + 表示变动后的文件,1 表示第一行, 3 表示连续三行。


注意:当没有任何输出的时候(即提交之后),表示此文件与版本库中的文件一样,未发生任何变动

5.2 文件版本切换

当提交记录过多的时候,使用git log,略显臃肿,可用--pretty=oneline简化输出:每次提交记录只显示一行
在这里插入图片描述

回退到上一版本:git reset --hard HEAD^,上两个版本用^^
在这里插入图片描述
回到上n个版本:git reset --hard HEAD~100,回到前多个版本
在这里插入图片描述
回到指定版本位置,git reset --hard 版本hash值(5~8个字符)
在这里插入图片描述
查看当前用户最近操作日志记录,git reflog,可用于查找所有版本的hash值
在这里插入图片描述

5.3 文件删除

  1. 当文件(已提交到git库的文件)被误删之后,使用git checkout从版本库中检出
    注意:可使用git status追踪文件状态

    如:我将已提交的test.txt文件误删后的恢复流程
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 当确认要删除某个文件后,使用git rm 文件名
    在这里插入图片描述
    在这里插入图片描述

6.远程仓库github

下载方式:

  1. zip压缩包
  2. git:ssh、https
    复制地址,选择一个本地目录打开Git Bash,git clone 地址克隆到本地

注意:ssh比https编程效率高、也更安全。

国内登陆github需要一些加速器辅助才行

6.1 创建ssh公钥

  1. 本地生成ssh公钥和私钥,ssh-keygen -t rsa -C "github账户邮箱"
    一直回车就行
    在这里插入图片描述
    在这里插入图片描述
  2. 将公钥上传到github
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  3. 验证是否配置成功,ssh -T git@github.com
    在这里插入图片描述

6.2 远程推送

  1. 创建一个远程仓库
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. 本地上传文件
    找到本地需要上传的文件的目录,右键Git Bash
    在这里插入图片描述
    刷新一下网页
    在这里插入图片描述
    推送成功

6.3 删除文件

由上图可知,之前在本地git仓库删除掉的test.txt仍然推送到了github,接下来演示如何删除它

  1. 先提交一次
  2. 再推送一次
    在这里插入图片描述
    在这里插入图片描述

总结:先在本地执行git rm删除操作,然后提交,再推送一次,就OK了

7.Git本地分支操作

多人合作的项目在开发时通常不会直接在主干master上进行操作,而是重新开辟新的分支,在新的分支上进行开发 调试 等操作,当项目调试通过时才会将分支项目的代码合并到主干中。

7.1 分支指令

Git对于分支操作提供了以下基本的命令:

命令说明
git checkout branch切换到指定分支
git checkout -b new_branch新建分支并切换到新建分支
git branch -d branch删除指定分支
git branch查看所有分支,并且*号标记当前所在分支
git merge branch合并分支
git branch -m | -M oldbranch
newbranch
重命名分支,如果newbranch名字分支已存在,则需要使用-M强制重命名,否则使用-m重命名

7.2 具体操作

分支的列表展示与切换
在这里插入图片描述
新建一个文本,并合并
在这里插入图片描述
在这里插入图片描述
分支命名
在这里插入图片描述
分支删除
在这里插入图片描述

注意:主干不能删

7.3 分支推送与拉取

  1. 相关指令
命令说明
git branch -a查看本地与远程分支
git push origin branch_name推送本地分支到远程
git push origin :remote_branch删除远程分支(本地分支保留)
git checkout -b local_branch origin/remote_branch拉取远程指定分支并在本地创建分支
  1. 操作演示——本地分支推送到远程
    在这里插入图片描述
    分支推送成功:
    在这里插入图片描述
  2. 操作演示——远程创建dev拉取到本地

    因为github没有提供创建分支的按钮,所以先本地创建一个dev分支,推送到github之后并删除其本地分支git branch -D dev,再演示远程拉取dev到本地。
    在这里插入图片描述
    将文件克隆到本地
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

7.3 本地分支冲突出现与解决

冲突演示
查看两个分支共同拥有的文件,并选取一个
在这里插入图片描述
查看分支中文件的内容cat test1_0.txt,我这里是因为cat显示乱码,临时添加编码方式查看cat test1_0.txt | iconv -f GBK -t UTF-8
在这里插入图片描述
修改文件内容
在这里插入图片描述
修改之后提交
在这里插入图片描述
切换到main分支,并查看修改test1_0.txt的内容,
在这里插入图片描述
在这里插入图片描述
修改之后提交
在这里插入图片描述
合并dev,发生冲突
在这里插入图片描述
在这里插入图片描述
修改文件内容,删去===,<<,>>后提交
在这里插入图片描述
在这里插入图片描述

7.4 多人协同操作冲突

多人协同操作冲突比较常见

冲突演示
拉取远程仓库dev并在本地创建dev开发库,执 行命令git checkout -b dev origin/dev,以同台电脑不同的窗口来模拟两个用户操作同一分支同一文件

  1. 克隆到桌面,并到克隆文件中打开控制git命令行拉取远端分支dev
    在这里插入图片描述
    在这里插入图片描述

  2. 另找一个目录,进行相同操作
    在这里插入图片描述

  3. 修改文件内容
    在这里插入图片描述
    在这里插入图片描述
    并提交
    在这里插入图片描述
    在这里插入图片描述
    两个端口都做推送
    在这里插入图片描述
    可看出,后推送的报错,远程拒绝推送。
    在这里插入图片描述

防范措施
在执行git push操作之前,先执行git pull操作,保持本地和远端内容一致,再添加新的内容,然后再提交。

8.标签管理

通常,发布一个版本时,会在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。

标签操作基本命令

命令说明
git tag tag_name新建标签,默认为HEAD
git tag -a tag_name -m ‘xxx’添加标签并指定标签描述信息
git tag查看所有标签
git tag -d tag_name删除一个本地标签
git push origin tag_name推送本地标签到远程
git push origin --tags推送全部未推送过的本地标签到远程
git push origin :refs/tags/tag_name删除一个远程标签

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

9.知识点小结

请添加图片描述

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-09-05 11:13:53  更:2021-09-05 11:16:19 
 
开发: 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年12日历 -2024/12/23 0:13:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计