Git笔记part01

Git分布式版本控制工具

1、目标

了解Git基本概念

能够概述git工作流程

能够使用Git常用命令

熟悉Git代码托管服务

能够使用idea操作git

2、概述

2.1、开发中的实际场景

一、备份

二、代码还原

三、协同开发

四、追溯问题代码的编写人和编写时间(扣工资警告)

2.2、版本控制器的方式

一、集中式版本控制工具

二、分布式版本控制工具 如Git

分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样工作的时候,无需联网,版本库就在自己的电脑上。多人协作时只需要将各自的修改推送给对方,就能互相看到对方的修改。

2.3、Git的特性

速度快

简单的设计

对非线性开发模式有强力支持(允许成千上万个并行开发的分支)

完全分布式

有能力高效管理类似Linux内核一样的超大规模项目

2.4、git的由来

Linus 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

2.5、Git工作流程图

在这里插入图片描述

命令:

1.clone(克隆):从远程仓库中克隆代码到本地仓库

2.checkout(检出):从本地仓库中检出一个仓库分支然后进行修订

3.add(添加):在提交前先将代码提交到暂存区

4.commit(提交):提交到本地仓库。本地仓库中保存修改的各个历史版本

5.fetch(抓取):从远程仓库,抓取到本地仓库,不进行任何的合并多做,一般操作比较少。

6.pull(拉取):从远程库拉到本地库,自动进行合并(merge),然后放到工作区,相当于fetch+merge

7.push(推送):修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库

3、Git安装与常用命令

ls/ll 查看当前目录有哪些文件 ,ll可以还能够查看当前目录的隐藏文件

cat 查看文件内容

touch 创建文件

vi vi编辑器

在这里插入图片描述

3.1.3 为常用指令配置别名

有些常用的指令参数非常多,每次都要输入好多参数,我们可以使用别名

1.打开用户目录,创建.bashrc文件

部分windows一同不允许用户创建点号开头的文件,打开Git Bash,执行 touch ~/.bashrc

**~**表示当前用户的根目录

2.在.bashrc文件中输入如下内容:

#用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
#用于输出当前目录所有文件及基本信息
alias ll='ls -al'

3.在gitbash中,执行source ~/.bashrc

3.1.4 解决GitBash乱码问题

1.打开GitBash执行下面命令

git config --global core.quotepath false

2.${git_home}/etc/bash.bashrc 文件最后加入下面两行

export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"

3.2、获取本地仓库

要使用Git对我们的代码进行版本控制,首先要获得本地仓库

1.在电脑的任意位置创建一个空目录(如D:\GitRepository)作为本地Git仓库

2.进入这个目录中,点击右键打开Git bash窗口

3.执行命令git init

4.如果创建成功后可在文件夹下开到隐藏的.git目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eisrzrwg-1665584596576)(C:\Users\97868\AppData\Roaming\Typora\typora-user-images\image-20221011221054699.png)]

3.3、基础操作指令

3.3.1、查看修改的状态(status)

作用:查看修改的状态(暂存区、工作区)

命令形式:git status

3.3.2、 添加工作区到暂存区(add)

作用:将一个或多个文件的修改添加到暂存区

命令形式:git add 单个文件名|通配符

例如将所有修改的加入到暂存区:git add .

3.3.3、提交暂存区到本地仓库(commit)

作用:提交暂存区内容到本地仓库的当前分支

命令形式:git commit -m '注释内容'

3.3.4、查看提交日志(log)

在3.1.3中配置的别名git-log包含了这些参数,所以后续可以直接使用指令git-log

作用:查看提交记录

命令形式:git log[option]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eT1QdR33-1665584596577)(C:\Users\97868\AppData\Roaming\Typora\typora-user-images\image-20221011225015177.png)]

3.3.5、版本回退

作用:版本切换 有很多版本,有时候需要版本切换

命令形式:git reset --hard commitID

  • commitID可以使用git-loggit log指令查看

  • 如何查看已经删除的记录?

git reflog

3.4、分支

3.4.1、查看本地分支

git branch

3.4.2、添加本地分支

git branch 分支名

HEAD的意思

有多个分支时,我们只能对其中一个分支进行修改,HEAD -> 分支,该分支就是目前修改的分支

3.4.3、*切换当前分支
  • 切换到已有的一个分支

git checkout 分支名

  • 切换到一个不存在的分支(创建并切换)

git checkout -b 分支名

3.4.4、*合并分支

将一个分支上的提交合并到另一个分支

git merge 分支名

  • 一般将其他分支合并到master

    先用git checkout master切换到master分支

    然后再用git merge 分支名 将该分支合并到master

3.4.5、删除分支

不能删除当前分支,只能删除其他分支

git branch -d 分支名 删除分支时,需要做各种检查

git branch -D 分支名 删除分支时,不做任何检查,强制删除

3.4.5、解决冲突

在多个分支上对文件进行修改时可能会产生冲突,例如同时修改了同一个文件的同一行,这时要手动解决冲突。

步骤:

1.找到处理文件中冲突的地方

2.将解决完冲突的文件加入暂存区(add)

3.提交到仓库(commit)

在这里插入图片描述

此时执行merge合并命令,会提示冲突

在这里插入图片描述

此时发生冲突的file01.txt文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b44YZNRi-1665584596578)(C:\Users\97868\AppData\Roaming\Typora\typora-user-images\image-20221012002633817.png)]

对file01.txt手动修改,改成我们希望的合并后的样子,解决冲突

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vxg3Otdh-1665584596579)(C:\Users\97868\AppData\Roaming\Typora\typora-user-images\image-20221012002820960.png)]

添加到暂存区并提交到本地仓库

在这里插入图片描述

成功解决冲突,完成合并

3.4.9、开发中分支使用原则与流程

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

4、Git远程仓库

4.1、常见的远程仓库服务

国外的github.com

国内的码云gitee.com

4.2、注册码云

有手就行

4.3、创建远程仓库

有手就行

4.4、配置SSH公钥

1.生成SSH公钥

ssh-keygen -t rsa

不断回车

2.在Gitee设置公钥

获取公钥 cat ~/.ssh/id_rsa.pub

在Git Bash中选中公钥(会自动复制选中内容),粘贴到gitee->右上角头像->设置->SSH公钥。

3.检查公钥是否成功配置

ssh -T git@gitee.com

输入yes

4.5、操作远程仓库

4.5.1.添加远程仓库

先初始化本地库,然后与已创建的远程库进行对接

命令:git remote add <远端名称> <仓库路径>

  1. 远端名称,默认时origin,取决于远端服务器设置
  2. 仓库路径,从远端服务器获取此URL
4.5.2、查看远程仓库

git remote

4.5.3、推送到远程仓库

git push [-f] [--set-upstream] [远端名称[本地分支名][:远端分支名]]

  • 如果远程分支名和本地分支名相同 ,可以只写本地分支

    git push origin master`

  • -f 表示强制覆盖

  • –set-upstream 推送到远端的同时并且建立起和远端分支的关联关系

    • git push --set-upstream origin master
  • 如果当前分支已经和远端分支关联,则可以省略分支名和远端名

    git push 将master分支推送到已关联的远端分支

4.5.4、查看关联关系

git branch -vv

4.5.5、从远程仓库克隆

git clone <仓库路径> [本地目录]

本地目录可以省略,会自动生成一个本地目录,名称为仓库路径URL .git前的名称

4.5.6、从远程仓库抓取和拉取

抓取:将远程仓库里的更新都抓取到本地,不会进行合并

git fetch [remote name] [branch name]

拉取:将远程仓库的修改拉到本地并自动进行合并,相当于fetch+merge

git pull [remote name] [branch name]

4.5.7、解决合并冲突

其思想与解决本地分支冲突一致

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qadnaOcM-1665584596580)(C:\Users\97868\AppData\Roaming\Typora\typora-user-images\image-20221012085631382.png)]

IDEA使用git

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9Ek4BNF2-1665584596581)(C:\Users\97868\AppData\Roaming\Typora\typora-user-images\image-20221012102220780.png)]

IDEA 集成GitBash作为Terminal

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fantasy`

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值