Git & Gitee 学习笔记 (详细)

Git

    • 一、版本控制工具应该具备的功能
    • 二、版本控制工具
      • (1) 集中式版本控制工具
      • (2) 分布式版本控制工具
    • 三、Git 简介
      • (1) Git 结构
      • (2) Git 和代码托管中心
      • (3) 本地库和远程库
        • 团队内部协作
        • 跨团队协作
    • 四、Git 命令行操作
      • (1) 本地库初始化
      • (2) 设置签名
        • ① 形式
        • ② 作用
        • ③ 辨析
        • ④ 命令
            • 项目级别/仓库级别:仅在当前本地库范围内有效
            • 系统用户级别:登录当前操作系统的用户范围
            • 级别优先级
      • (3) 基本命令操作
        • ① 状态查看
        • ② 添加
        • ③ 提交
        • ④ 查看历史记录
        • ⑤ 版本的前进后退
        • ⑥ reset 命令的三个参数对比
        • ⑦ 删除文件并找回
        • ⑧ 比较文件差异
      • (4) 分支管理
        • ① 什么是分支
        • ② 分支的好处
        • ③ 分支操作
    • 五、Git 基本原理
      • (1) 创建远程库
      • (2) 创建远程仓库别名
      • (3) 推送
      • (4) 克隆
      • (5) 团队成员邀请
      • (6) 拉取
      • (7) 解决冲突
      • (8) 跨团队协作
        • ① 黑桃2号 fork 项目到自己仓库
        • ② 黑桃2号 fork 完成后页面
        • ③ 黑桃2号 将项目clone到本地,然后修改内容,再逐步提交到远程库
            • ★ 遇到的问题
        • ④ 黑桃2号 Pull Request,将修改发给 黑桃 审核测试
        • ⑤ 黑桃 在自己页面中可以看到 黑桃2号 发来的内容
        • ⑥ 黑桃 审核和测试通过,再进行合并
        • ⑦ 黑桃 将最新内容 pull 到本地库
      • (9) SSH 登录
    • 六、IDEA 上使用 Git


一、版本控制工具应该具备的功能

Git & Gitee 学习笔记 (详细)_第1张图片


二、版本控制工具

思想:版本控制

实现:版本控制工具

(1) 集中式版本控制工具

CVS、SVN、VSS……

Git & Gitee 学习笔记 (详细)_第2张图片

(2) 分布式版本控制工具

Git、Mercurial、Bazaar、Darcs……

Git & Gitee 学习笔记 (详细)_第3张图片


三、Git 简介

(1) Git 结构

Git & Gitee 学习笔记 (详细)_第4张图片

(2) Git 和代码托管中心

代码托管中心的任务:维护远程库

  • 局域网环境
    GitLab 服务器
  • 外网环境
    GitHub
    码云

(3) 本地库和远程库

团队内部协作

Git & Gitee 学习笔记 (详细)_第5张图片

跨团队协作

在这里插入图片描述


四、Git 命令行操作

(1) 本地库初始化

Git & Gitee 学习笔记 (详细)_第6张图片

(2) 设置签名

① 形式

用户名:tom
Email 地址:[email protected]

② 作用

区分不同开发人员的身份

③ 辨析

这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关
系。

④ 命令
项目级别/仓库级别:仅在当前本地库范围内有效
git config user.name heitao

git config user.email [email protected]

信息保存位置:./.git/config 文件

Git & Gitee 学习笔记 (详细)_第7张图片

Git & Gitee 学习笔记 (详细)_第8张图片

系统用户级别:登录当前操作系统的用户范围
git config --global user.name heitao_glb

git config --global user.email [email protected]

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

Git & Gitee 学习笔记 (详细)_第9张图片

在这里插入图片描述

级别优先级

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

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

不允许二者都没有


(3) 基本命令操作

① 状态查看

查看工作区、暂存区状态

git status

Git & Gitee 学习笔记 (详细)_第10张图片

② 添加

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

git add [file name]

Git & Gitee 学习笔记 (详细)_第11张图片

Git & Gitee 学习笔记 (详细)_第12张图片
Git & Gitee 学习笔记 (详细)_第13张图片
在这里插入图片描述

Git & Gitee 学习笔记 (详细)_第14张图片

③ 提交

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

git commit -m "commit message" [file name

Git & Gitee 学习笔记 (详细)_第15张图片

Git & Gitee 学习笔记 (详细)_第16张图片

Git & Gitee 学习笔记 (详细)_第17张图片

Git & Gitee 学习笔记 (详细)_第18张图片
Git & Gitee 学习笔记 (详细)_第19张图片

④ 查看历史记录

git log

多屏显示控制方式:
	空格:向下翻页
	b :向上翻页
	q :退出

Git & Gitee 学习笔记 (详细)_第20张图片

git log --pretty=oneline

在这里插入图片描述

git log --oneline

在这里插入图片描述

git reflog

HEAD@{移动到当前版本需要多少步}

在这里插入图片描述

⑤ 版本的前进后退

Git & Gitee 学习笔记 (详细)_第21张图片
Git & Gitee 学习笔记 (详细)_第22张图片

基于索引值的操作【推荐】 : git reset --hard [局部索引值]

Git & Gitee 学习笔记 (详细)_第23张图片

使用^符号( 只能后退,一个^后退一步) : git reset --hard HEAD^

Git & Gitee 学习笔记 (详细)_第24张图片

Git & Gitee 学习笔记 (详细)_第25张图片

使用~符号 ( 只能后退,n代表后退n个版本 ):git reset --hard HEAD~n

Git & Gitee 学习笔记 (详细)_第26张图片
Git & Gitee 学习笔记 (详细)_第27张图片

⑥ reset 命令的三个参数对比

Git & Gitee 学习笔记 (详细)_第28张图片

⑦ 删除文件并找回

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

操作:git reset --hard [指针位置]
(1) 删除操作已经提交到本地库:指针位置指向历史记录
(2) 删除操作尚未提交到本地库:指针位置使用 HEAD

删除操作未提交到本地库的情况
Git & Gitee 学习笔记 (详细)_第29张图片

删除情况已提交到本地库的情况
Git & Gitee 学习笔记 (详细)_第30张图片
Git & Gitee 学习笔记 (详细)_第31张图片

⑧ 比较文件差异
git diff [文件名]
   将工作区中的文件和暂存区进行比较
   
git diff [本地库中历史版本] [文件名]
  将工作区中的文件和本地库历史记录比较
  
  不带文件名比较多个文件

将工作区中的文件和暂存区进行比较
Git & Gitee 学习笔记 (详细)_第32张图片

Git & Gitee 学习笔记 (详细)_第33张图片

将工作区中的文件和本地库历史记录比较
Git & Gitee 学习笔记 (详细)_第34张图片


(4) 分支管理

① 什么是分支

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

Git & Gitee 学习笔记 (详细)_第35张图片

② 分支的好处
  • 同时并行推进多个功能开发,提高开发效率
  • 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

③ 分支操作

查看分支
git branch -v

在这里插入图片描述

创建分支
git branch [分支名]

Git & Gitee 学习笔记 (详细)_第36张图片

切换分支
git checkout [分支名]

Git & Gitee 学习笔记 (详细)_第37张图片

合并分支

第一步:切换到接受修改的分支(被合并,增加新内容)上 :
git checkout [被合并分支名]

第二步:执行 merge 命令
git merge [有新内容的分支名]

第一步:在 branchtest 分支下操作
Git & Gitee 学习笔记 (详细)_第38张图片
第二步:在 master 下操作

Git & Gitee 学习笔记 (详细)_第39张图片

产生 与 解决冲突

在 branchtest 分支中操作

Git & Gitee 学习笔记 (详细)_第40张图片

在 master 中操作
Git & Gitee 学习笔记 (详细)_第41张图片

Git & Gitee 学习笔记 (详细)_第42张图片

Git & Gitee 学习笔记 (详细)_第43张图片
Git & Gitee 学习笔记 (详细)_第44张图片

Git & Gitee 学习笔记 (详细)_第45张图片

Git & Gitee 学习笔记 (详细)_第46张图片

在这里插入图片描述
ps:只是解决了冲突,并没有完成合并


五、Git 基本原理

(1) 创建远程库

(github实现太卡了,一下能上,一下不能上,用 gitee)

Git & Gitee 学习笔记 (详细)_第47张图片

(2) 创建远程仓库别名

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

git remote add [别名] [远程地址]

Git & Gitee 学习笔记 (详细)_第48张图片
在这里插入图片描述
在这里插入图片描述
Git & Gitee 学习笔记 (详细)_第49张图片

(3) 推送

git push [别名] [分支名]

Git & Gitee 学习笔记 (详细)_第50张图片
然后将 testRes 通过 add ,commit 提交到本地库

Git & Gitee 学习笔记 (详细)_第51张图片

Git & Gitee 学习笔记 (详细)_第52张图片

(4) 克隆

git origin [远程地址]

Git & Gitee 学习笔记 (详细)_第53张图片

克隆的效果

  • 完整的把远程库下载到本地
  • 创建 origin 远程地址别名
  • 初始化本地库

(5) 团队成员邀请

Git & Gitee 学习笔记 (详细)_第54张图片

Git & Gitee 学习笔记 (详细)_第55张图片

Git & Gitee 学习笔记 (详细)_第56张图片


(6) 拉取

pull = fetch + merge

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

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

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

Git & Gitee 学习笔记 (详细)_第57张图片

Git & Gitee 学习笔记 (详细)_第58张图片

Git & Gitee 学习笔记 (详细)_第59张图片

(7) 解决冲突

Git & Gitee 学习笔记 (详细)_第60张图片

Git & Gitee 学习笔记 (详细)_第61张图片
Git & Gitee 学习笔记 (详细)_第62张图片

Git & Gitee 学习笔记 (详细)_第63张图片

Git & Gitee 学习笔记 (详细)_第64张图片
Git & Gitee 学习笔记 (详细)_第65张图片
修改冲突内容后,重新git add testResgit commit -m “信息”,然后再git push origin master 提交到远程库

Git & Gitee 学习笔记 (详细)_第66张图片

(8) 跨团队协作

由于没有这么多账号,所以将后加入团队的(黑桃2号) 移出仓库,成为 团队外的人,再 进行测试跨团队协作

① 黑桃2号 fork 项目到自己仓库

Git & Gitee 学习笔记 (详细)_第67张图片

② 黑桃2号 fork 完成后页面

Git & Gitee 学习笔记 (详细)_第68张图片

③ 黑桃2号 将项目clone到本地,然后修改内容,再逐步提交到远程库

Git & Gitee 学习笔记 (详细)_第69张图片

★ 遇到的问题

这里要注意如果采用https方式,需要去凭据管理器中看是否为当前[黑桃2号],否则可能会提交到 [黑桃] 这个账号上,导致禁止访问403

④ 黑桃2号 Pull Request,将修改发给 黑桃 审核测试

Git & Gitee 学习笔记 (详细)_第70张图片

⑤ 黑桃 在自己页面中可以看到 黑桃2号 发来的内容

Git & Gitee 学习笔记 (详细)_第71张图片
Git & Gitee 学习笔记 (详细)_第72张图片

⑥ 黑桃 审核和测试通过,再进行合并

Git & Gitee 学习笔记 (详细)_第73张图片
Git & Gitee 学习笔记 (详细)_第74张图片
Git & Gitee 学习笔记 (详细)_第75张图片

⑦ 黑桃 将最新内容 pull 到本地库

Git & Gitee 学习笔记 (详细)_第76张图片
Git & Gitee 学习笔记 (详细)_第77张图片


(9) SSH 登录

cd ~

在这里插入图片描述

rm -rvf .ssh

Git & Gitee 学习笔记 (详细)_第78张图片

ssh-keygen -t rsa -C xxx

Git & Gitee 学习笔记 (详细)_第79张图片

Git & Gitee 学习笔记 (详细)_第80张图片

点击头像 - 设置 - 安全设置 - ssh公钥,然后进行添加

Git & Gitee 学习笔记 (详细)_第81张图片

然后回到要操作的目录
Git & Gitee 学习笔记 (详细)_第82张图片

Git & Gitee 学习笔记 (详细)_第83张图片

Git & Gitee 学习笔记 (详细)_第84张图片

Git & Gitee 学习笔记 (详细)_第85张图片


六、IDEA 上使用 Git

这个博主写的不错

你可能感兴趣的:(Git,git,gitee)