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的学习 -> 正文阅读

[开发工具]Git的学习

目录

Git结构:

本地库的初始化:

设置签名:

基本操作:

添加提交以及查看状态操作:

状态查看操作:

添加操作:

提交操作:

对历史版本的查看以及前进后退操作:?

查看历史记录的方式:

前进或者后退历史版本的操作:

?reset命令的三个参数的对比:

删除文件后找回:

找回删除的文件:

比较文件差异:

分支管理:

????????什么是分支:

? ? ? ? 分支的好处:

? ? ? ? 分支操作:

? ? ? ? ? ? ? ? ????????创建分支:

? ? ? ? ? ? ? ????????? 查看分支:

? ? ? ? ? ? ? ? ????????切换分支:

? ? ? ? ? ? ????????? ? 合并分支:

? ? ? ? ? ? ????????? ? 解决冲突:

Git 存储文件方式:

Git分支管理机制

本质:

本地库与远程库的交互:

推送操作:

克隆操作:

解决冲突:

跨团队协作:


Git结构:

工作区:平时存放项目代码的地方

暂存区:临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息

本地库:安全存放数据的位置,这里面有你提交到所有版本的数据。

工作流程:

在工作区中新建或修改代码;

将需要进行版本管理的文件用git add命令放入暂存区;

使用git commit命令将暂存区的文件提交到本地库。

Git与代码托管中心:

局域网环境下:

GitLab服务器;

外网环境下:

GitHub;

码云;

代码托管中心的作用:维护远程库

本地库的初始化:

#初始化本地库
git init
#会显示 Initialized empty Git repository in [dirName].git/
#.git 为隐藏属性

初始化如下:

.git文件夹中的属性如下:

?注意:.git目录中存放的是本地库相关的子目录和文件,不要删除,也不能随意修改

设置签名:

形式:

用户名:Hope

Email地址:123456@atguigu.com

作用:区分不同开发人员的身份

辨析:此处设置的签名与登录远程库(代码托管中心)的账号密码没有关系

命令:

? ? ? ? 项目级别/仓库级别:仅在当前本地库范围内有效

? ? ? ? ? ? ? ?git config user.name Hope_pro

? ? ? ? ? ? ? ?git config user.email 123456_pro@atguigu.com

? ? ? ? ? ? ? ?信息保存位置:./.gitconfig文件

? ? ? ? 系统用户级别:登录当前操作系统的用户范围

? ? ? ? ? ? ? ? git config --global?user.name Hope_glb

? ? ? ? ? ? ? ? git config --global?user.email 123456_glb@atguigu.com

????????????????信息保存位置:~/.gitconfig文件

? ? ? ? 级别优先级:

? ? ? ? ? ? ? ? 就近原则:项目级别优先于系统用户级别,二者都有事时采用项目级别的签名

? ? ? ? ? ? ? ? 如果只有系统用户级别的签名,就以系统用户级别的签名为准

????????????????(二者都没有是不允许的)

基本操作:

添加提交以及查看状态操作:

状态查看操作:

git status

查看工作区、暂存区状态

#branch是分枝
#on branch master说明我们目前在主干上
#No commits yet说明目前没有任何的提交
Untracked files ( Exception )
#在编译git库拉下来的代码时,往往会产生一些中间文件,这些文件我们根本不需要,尤其是在成产
#环节做预编译,检查代码提交是否能编译通过这种case时,我们往往需要编译完成后不管正确与否,
#还原现场,以方便下次sync代码时不受上一次的编译影响。文中的红色代码部分便是没有监控的部分。

例如:

删除方法:(删除的是工作区的文件)

# 删除 untracked files
git clean -f

# 连 untracked的目录也一起删掉
git clean -fd

# 连 gitignore的untrack文件/目录也一起删掉(慎用,一般这个是用来删掉编译出来的.o之类的文件用的)
git clean -xfd

# 在用上述 git clean前,强烈建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删
git clean -nxfd
git clean -nf
git clean -nfd

添加操作:

git add [file name]

将工作区的“新建/修改”添加到暂存区

若需要移除该文件,则需要使用 git rm --cached 命令:

提交操作:

git commit -m?"commit message" [file name]

将暂存区的内容提交到本地库

注意:也可以使用 git commit [file name] 命令进入vim编辑器中进行注释

下面的界面vim编辑器,可以记录你提交该文件的目的(相当于注释)

?提交后:

?若需要修改,则需要进入vim编辑器中进行修改:

对历史版本的查看以及前进后退操作:?

查看历史记录的方式:

git log (最详细的操作)

多屏显示控制方式:

? ? ? ? 空格向下翻页

????????b向上翻页

? ? ? ? q退出

git log --pretty=oneline

git? log --oneline

?git reflog

? ? ? ? ?注:HEAD@{移动到当前版本需要的步数}

前进或者后退历史版本的操作:

基于索引值操作[推荐]:

git reset --hard [局部索引值]

使用^符号:只能后退

git reset --hard HEAD^…^(n个^则表示后退n个版本)

使用~符号:只能后退?

git reset --hard HEAD~[后退步数]

?reset命令的三个参数的对比:

????????--soft参数:

? ? ? ? ? ? ? ? 仅仅在本地库移动HEAD指针

????????--mixed参数:

? ? ? ? ? ? ? ? 在本地库移动HEAD指针

? ? ? ? ? ? ? ? 重置暂存区

????????--hard参数:

? ? ? ? ? ? ? ? 在本地库移动HEAD指针

? ? ? ? ? ? ? ? 重置暂存区

? ? ? ? ? ? ? ? 重置工作区

删除文件后找回:

永久删除文件:

注:删除文件的记录不会消失

找回删除的文件:

?前提:删除前,文件存在时的状态提交到了本地库

操作:git reset --hard [指针位置]

? ? ? ? 删除操作已经提交到本地库:指针位置指向历史记录

? ? ? ? 删除操作尚未提交到本地库:指针位置指向HEAD

比较文件差异:

? ? ? ? git diff [文件名]

? ? ? ? ? ? ? ? 将工作区中的文件与暂存区中的文件进行比较

????????git diff [本地库中历史版本] [文件名]

????????????????将工作区中的文件和本地库历史记录比较

????????不带文件名与多个版本进行比较:

分支管理:

????????什么是分支:

? ? ? ? ? ? ? ? 在版本控制过程中,使用多条线同时推进多个任务

? ? ? ? 分支的好处:

? ? ? ? ? ? ? ? 同时并行推进多个功能的开发,提高开发效率

? ? ? ? ? ? ? ? 各个分支在开发的的过程中,某一个分支开发失败,不会对其他分支产生影响。失败的分支删除重新开始即可

? ? ? ? 分支操作:

? ? ? ? ? ? ? ? ????????创建分支:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? git branch [分支名]

? ? ? ? ? ? ? ????????? 查看分支:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? git branch -v

? ? ? ? ? ? ? ? ????????切换分支:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? git checkout [分支名]

? ? ? ? ? ? ????????? ? 合并分支:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 第一步:切换到被合并的分支上

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? git checkout [分支名(合并后留下来的)]

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 第二步:执行merge命令

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?git merge [分支名(合并后消失的,即有新内容的分支)]

? ? ? ? ? ? ????????? ? 解决冲突:

?冲突的表现:

前者为当前分支内容,后者为另一分支内容

?冲突的解决:

? ? ? ? 第一步:编辑文件,删除特殊符号

? ? ? ? 第二步:把文件修改到满意的程度,保存退出

????????第三步:git add [文件名]

? ? ? ? 第四步:git commit -m [日志信息]

? ? ? ?????????注意:本次使用 git commit 指令,不能带有文件名

Git 存储文件方式:

快照式

提交对象及其父对象形成链条

Git分支管理机制

本质:

????????创建和移动指针

本地库与远程库的交互:

查看当前所有远程地址别名:git remote -v?

git remote add [地址别名]?[远程库的地址]

推送操作:

? ? ? ? git push [地址别名] [分支名]

克隆操作:

????????git clone [远程库的地址]

效果:

????????完整地把远程库下载到本地

????????创建远程地址别名

????????初始化本地库

拉取:

? ? ? ? pull=fetch+merge

? ? ? ? git fetch [远程库地址别名] [远程分支名]

? ? ? ? git merge [远程库地址别名/远程分支名]

解决冲突:

? ? ? ? 要点:

? ? ? ? ? ? ? ? 如果不是基于GitHub远程库的最新版所做的修改,不能推送,必须先拉取

? ? ? ? ? ? ? ? 拉取下来后如果进入冲突状态,则按照“分支冲突解决”操作解决即可

跨团队协作:

? ? ? ? fork

? ? ? ? 本地修改,然后推送到远程

? ? ? ? pull request

? ? ? ? 审核代码

????????合并代码

? ? ? ? 将远程库修改拉取到本地

  开发工具 最新文章
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常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-01-28 12:07:31  更:2022-01-28 12:08:25 
 
开发: 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 10:24:03-

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