学习Git这一篇就够了 约定不等于承诺〃 2022-12-28 00:53 153阅读 0赞 ### 目录 ### * 第一章 Git概述 * * 1.1、Git概述 * 1.2、Git官网 * 1.3、Git安装 * 第二章 Git工作流程 * * 2.1、单人开发流程 * 2.2、团队内部协作 * 第三章 Git基本操作 * * 3.1、配置的操作 * * 3.1.1、查看当前Git配置 * 3.1.2、编辑当前Git配置 * 3.1.3、添加当前Git签名 * 3.2、初始化操作 * 3.3、暂存区操作 * * 3.3.1、添加文件 * 3.3.2、删除文件 * 3.3.3、改名文件 * 3.3.4、查看状态 * 3.4、本地库操作 * * 3.4.1、从暂存区提交文件 * 3.4.2、从远程库克隆文件 * 3.4.3、从远程库更新文件 * 3.4.4、查看推送历史版本 * 3.5、远程库操作 * * 3.5.1、别名设置 * 3.5.2、推送分支 * 3.6、工作区操作 * * 3.6.1、从本地库检出 * 3.6.2、从远程库拉取 * 3.6.3、比较文件差异 * 3.7、重置各区内容 * 3.8、历史版本回退 * 3.9、标签签名管理 * 第四章 Git分支管理 * * 4.1、分支概述 * 4.2、创建分支 * 4.3、查看分支 * 4.4、切换分支 * 4.5、合并分支 * 4.6、删除分支 * 4.7、解决冲突 -------------------- # 第一章 Git概述 # ## 1.1、Git概述 ## Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的版本控制工具 SVN,CVS,Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。 Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。 如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概念和特征。 ## 1.2、Git官网 ## 官方地址:https://git-scm.com/ 下载地址:https://git-scm.com/downloads ## 1.3、Git安装 ## > 安装版本:Git-2.22.0-64-bit.exe ![image-20201212202742461][] ![image-20201212202826146][] ![image-20201212202907512][] ![image-20201212202926008][] ![image-20201212202940731][] ![image-20201212203026766][] ![image-20201212203045356][] ![image-20201212203102750][] ![image-20201212203125118][] ![image-20201212203153029][] ![image-20201212203211328][] ![image-20201212203225991][] ![image-20201212203305851][] # 第二章 Git工作流程 # ## 2.1、单人开发流程 ## ![image-20201212205948617][] ## 2.2、团队内部协作 ## ![image-20201212210757251][] # 第三章 Git基本操作 # ## 3.1、配置的操作 ## ### 3.1.1、查看当前Git配置 ### git config --list ### 3.1.2、编辑当前Git配置 ### **编辑本地仓库级别的配置文件:** 仅在当前本地仓库范围有效,该文件默认在`工作空间/.git/config` git config -e **编辑系统用户级别的配置文件:** 登录操作系统用户范围有效,该文件默认在`~/.gitconfig` git config -e --global ### 3.1.3、添加当前Git签名 ### **本地仓库级别Git签名:** git config user.name [用户名称] git config user.email [用户邮箱] **系统用户级别Git签名:** git config --global user.name [用户名称] git config --global user.email [用户邮箱] ## 3.2、初始化操作 ## # 在当前目录创建一个本地仓库 git init # 在当前目录创建指定名称目录,并将其初始化本地仓库 git init [仓库名称] ## 3.3、暂存区操作 ## ### 3.3.1、添加文件 ### # 添加指定文件到暂存区 git add [文件1] [文件2] ... # 添加指定目录到暂存区 git add [目录名] # 添加当前目录的所有文件到暂存区 git add . ### 3.3.2、删除文件 ### # 普通删除工作区文件,并且将这次删除放入暂存区 git rm [文件1] [文件2] ... # 强制删除工作区文件,并且将这次删除放入暂存区 git rm --force [文件1] [文件2] ... # 如果想把文件从暂存区域移除,但仍然希望保留在当前工作目录中,使用 --cached 选项即可 git rm --cached [文件1] [文件2] ... ### 3.3.3、改名文件 ### # 改名文件,并且将这个改名放入暂存区 git mv [旧文件名] [新文件名] ### 3.3.4、查看状态 ### # 文件,文件夹在工作区,暂存区的状态 git status ## 3.4、本地库操作 ## ### 3.4.1、从暂存区提交文件 ### # 提交暂存区到本地仓库 git commit -m [备注信息] # 提交暂存区的指定文件到本地仓库 git commit -m [备注信息] [文件1] [文件2] ... # 提交工作区自上次commit之后的变化到本地仓库 git commit -a # 提交时显示所有diff信息 git commit -v # 使用一次新的commit,替代上一次提交 # 如果文件没有任何新变化,则用来改写上一次commit的备注信息 git commit --amend -m [备注信息] # 重做上一次commit,并包括指定文件的新变化 git commit --amend [文件1] [文件2] ... ### 3.4.2、从远程库克隆文件 ### # 下载远程仓库的一个项目(包括历史记录版本)到本地的当前目录下 git clone [远程仓库项目地址] ### 3.4.3、从远程库更新文件 ### # 下载远程仓库的所有变动 git fetch [远程仓库项目地址] ### 3.4.4、查看推送历史版本 ### # 显示当前分支的版本历史 git log # 显示当前分支的版本历史,美化输出格式(显示全部hash值) git log --pretty=oneline # 显示当前分支的版本历史,美化输出格式(显示部分hash值) git log --oneline # 显示当前分支的版本历史,以及每次commit发生变更的文件 git log --stat # 根据关键词搜索提交历史 git log -S [关键词] # 显示指定次数的提交历史 git log -10 ## 3.5、远程库操作 ## ### 3.5.1、别名设置 ### # 查看当前所有远程地址别名 git remote -v # 增加一个新的远程地址别名 git remote add [远程地址别名] [远程地址] # 显示指定的远程地址的信息 git remote show [远程地址别名] ### 3.5.2、推送分支 ### # 上传本地指定分支到远程仓库 git push [远程地址别名] [本地分支名] # 强行推送当前分支到远程仓库,即使有冲突 git push --force [远程地址别名] # 推送所有分支到远程仓库 git push --all [远程地址别名] # 删除远程分支 git push [远程地址别名] --delete [远程分支名] ## 3.6、工作区操作 ## ### 3.6.1、从本地库检出 ### # 恢复暂存区的指定文件到工作区 git checkout [文件1] [文件2] ... # 恢复某个commit的指定文件到暂存区和工作区 git checkout [commithash] [文件1] [文件2] ... # 恢复暂存区的所有文件到工作区 git checkout . ### 3.6.2、从远程库拉取 ### # 取回远程仓库的变化,并与本地分支合并 git pull [远程地址别名] [本地分支名] ### 3.6.3、比较文件差异 ### # 将工作区中的文件和暂存区进行比较 git diff [文件名] # 将工作区中的文件和本地库历史记录比较 git diff [commithash] [文件名] # 查看未提交的暂存 git diff --cached ## 3.7、重置各区内容 ## # 用commithash的内容重置HEAD内容 git reset --soft [commithash] # 用commithash的内容重置HEAD内容,重置暂存区 git reset --mixed [commithash] # 用commithash的内容重置HEAD内容,重置暂存区,重置工作目录 git reset --hard [commithash] ## 3.8、历史版本回退 ## * **基于哈希索引值的操作** * `git reset --hard [commithash]` * 注意:该方法既可以前进,也可以后退,是推荐使用的方法 * **使用^符号:只能后退** * `git reset --hard HEAD^` * 注意:一个^表示后退一步,n 个表示后退 n 步 * **使用~符号:只能后退** * `git reset --hard HEAD~n` * 注意:表示后退 n 步 ## 3.9、标签签名管理 ## # 列出所有tag git tag # 查看tag信息 git show [tag] # 新建一个tag在当前commit git tag [tag] # 新建一个tag在指定commit git tag [tag] [commithash] # 删除本地tag git tag -d [tag] # 提交指定tag git push [远程地址别名] [tag] # 删除远程tag git push [远程地址别名] :refs/tags/[tagName] # 提交所有tag git push [远程地址别名] --tags # 第四章 Git分支管理 # ## 4.1、分支概述 ## 几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。 在很多版本控制系统中,这是一个略微低效的过程,常常需要完全创建一个源代码目录的副本。 对于大项目来说,这样的过程会耗费很多时间。 有人把 Git 的分支模型称为它的“必杀技特性”,也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出。 为何 Git 的分支模型如此出众呢? Git 处理分支的方式可谓是难以置信的轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷。 与许多其它版本控制系统不同,Git 鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次。 理解和精通这一特性,你便会意识到 Git 是如此的强大而又独特,并且从此真正改变你的开发方式。 ## 4.2、创建分支 ## # 创建指定名称的本地分支 git branch [分支名] ## 4.3、查看分支 ## # 列出所有本地分支 git branch # 列出所有本地分支以及每个分支最新的版本 git branch -v # 列出所有远程分支 git branch -r # 列出所有本地分支和远程分支 git branch -a ## 4.4、切换分支 ## # 切换到指定的分支 git checkout [分支名] # 切换到上一个分支 git checkout - # 新建一个本地分支,指向某个tag git checkout -b [新建分支名称] [tag] ## 4.5、合并分支 ## # 第一步:切换到被合并分支上 git checkout [被合并分支名] # 第二步:执行 merge 命令 git merge [要合并分支名] ## 4.6、删除分支 ## # 删除本地分支 git branch -d [本地分支名] ## 4.7、解决冲突 ## **冲突的表现:** ![image-20201212233215305][] **冲突的解决:** * 第一步:编辑文件,删除特殊符号 * 第二步:把文件修改到满意的程度,保存退出 * 第三步:git add \[文件名\] * 第四步:git commit -m “日志信息” [image-20201212202742461]: /images/20221120/88a8141a7a5446b192005ec38a006c31.png [image-20201212202826146]: /images/20221120/72fe8a3867f74504844fa048d8a53026.png [image-20201212202907512]: /images/20221120/820d3b0af9214b4a8cf154b1e8901ba1.png [image-20201212202926008]: /images/20221120/46fad744ef36472d981be4f8bf600a90.png [image-20201212202940731]: /images/20221120/92c04b69b8064cbbacbb36365c9ccfa9.png [image-20201212203026766]: /images/20221120/ac2a24b4c1bc4b5684e26c0b7275db66.png [image-20201212203045356]: /images/20221120/a764f00481f0426c9ebcd6dcb990400c.png [image-20201212203102750]: /images/20221120/00afd525b02a42d7ab7b8ed91f3c8071.png [image-20201212203125118]: /images/20221120/2e1898a34bc240998c025850453202d8.png [image-20201212203153029]: /images/20221120/4ae265a7b56d4ee28ac38f82255cd2f3.png [image-20201212203211328]: /images/20221120/8057bf49b25c4545b6d71e5420a1cb11.png [image-20201212203225991]: /images/20221120/39c4b9c3d2524f1bac171f0a7668d286.png [image-20201212203305851]: /images/20221120/ecb1a8b1ef3347e6be1685e23b1b4df5.png [image-20201212205948617]: /images/20221120/cde5962556a84769b8aed26a4d618dc4.png [image-20201212210757251]: /images/20221120/ae6fe56299d84ee68e5824ba9f617915.png [image-20201212233215305]: https://img-blog.csdnimg.cn/img_convert/b07f3c0cf1a89574b56c93d62e8b5534.png
相关 学习Maven这一篇就够了 目录 第一章 Maven简介 1.1、Maven概述 1.2、Maven特点 1.3、Maven官网 1.4、 ╰+哭是因爲堅強的太久メ/ 2022年12月28日 05:28/ 0 赞/ 689 阅读
相关 学习Git这一篇就够了 目录 第一章 Git概述 1.1、Git概述 1.2、Git官网 1.3、Git安装 第二章 Git工作流程 约定不等于承诺〃/ 2022年12月28日 00:53/ 0 赞/ 154 阅读
相关 学习JavaScript这一篇就够了 目录 第一章 JavaScript简介 1.1、JavaScript的起源 1.2、JavaScript的组成 1.3、Ja 痛定思痛。/ 2022年12月17日 15:55/ 0 赞/ 268 阅读
相关 学习JavaWeb这一篇就够了 目录 第一章 开发工具 1.1、JDK安装 1.2、Tomcat安装 1.3、IDEA安装 1.4、IDEA集 忘是亡心i/ 2022年12月06日 04:14/ 0 赞/ 185 阅读
相关 学习Tomcat这一篇就够了 目录 第一章 Tomcat概述 1.1、Tomcat概述 1.2、Tomcat历史 1.3、T 短命女/ 2022年12月04日 08:37/ 0 赞/ 449 阅读
相关 学习FastDFS这一篇就够了 目录 第一章 FastDFS简介 1.1、FastDFS的简介 1.2、FastDFS的发展历史 ╰+攻爆jí腚メ/ 2022年12月04日 07:40/ 0 赞/ 659 阅读
相关 学习Nginx这一篇就够了 目录 第一章 Nginx概述 1.1、Nginx概述 1.2、Nginx官网 1.3、Ngin 叁歲伎倆/ 2022年12月02日 04:24/ 0 赞/ 403 阅读
相关 学习Oracle这一篇就够了 目录 第一章 数据库概述 1.1、数据库的好处 1.2、数据库的常见概念 1.3、数据库的存储 缺乏、安全感/ 2022年11月27日 03:13/ 0 赞/ 424 阅读
相关 学习JavaScript这一篇就够了 [https://blog.csdn.net/qq\_38490457/article/details/109257751?utm\_medium=distribute.pc\ 左手的ㄟ右手/ 2022年11月21日 03:34/ 0 赞/ 303 阅读
相关 学习JDBC这一篇就够了 文章目录 一、JDBC简介 二、获取数据库连接 准备工作 1、导入驱动jar包 2、加载与注册JDBC驱 痛定思痛。/ 2022年11月18日 01:42/ 0 赞/ 353 阅读
还没有评论,来说两句吧...