Git入门学习教程

Git学习

1.简介

Git 是一个开源的分布式版本控制系统(Distributed Version Control System,简称 DVCS),用于敏捷高效地处理任何或小或大的项目。

2.工作流程图

工作流程图
使用的命令如下:

  1. clone(克隆): 从远程仓库中克隆代码到本地仓库。
  2. checkout (检出):从本地仓库中检出一个仓库分支然后进行修订。
  3. add(添加): 在提交前先将代码提交到暂存区。
  4. commit(提交): 提交到本地仓库。本地仓库中保存修改的各个历史版本。
  5. fetch (抓取) : 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。
  6. pull (拉取) : 从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于fetch+merge。
  7. push(推送) : 修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库。

3.安装

下载地址: https://git-scm.com/download

在这里插入图片描述

下载完成可以得到如下安装文件:

在这里插入图片描述

双击打开按步骤安装即可。安装完成后在电脑桌面(也可以是其他目录)点击右键,如果能够看到下面两个菜单则说明Git安装成功。

在这里插入图片描述

Git GUI:Git提供的图形界面工具

Git Bash:Git提供的命令行工具

3.1 常用指令

在Git Bash中,我们会用到一些基本的linux命令:

  • ls:查看当前目录
  • cat:查看文件内容
  • touch:创建文件
  • vi/vim file:编辑文件

4.环境配置

4.1 查看配置

//查看所有配置
git config -l
//查看系统配置
git config --system --list
//查看用户自己配置
git config --global --list

在这里插入图片描述

系统文件配置文件位置如下(因为之前我改过路径,这里的http.sslCAInfo是不对的,改为D:/Download/Git/mingw64/ssl/certs/ca-bundle.crt

在这里插入图片描述

4.2 配置用户名(必须)和邮箱

//配置用户名
git config --global user.name  "Kint"
//配置邮箱
git config --global user.email "1114011612@qq.com"

用户配置文件位置如下:

在这里插入图片描述

5.创建仓库

创建仓库的步骤如下:

  1. 新创建一个空文件夹(例如test),作为本地的Git仓库
  2. 进入该文件夹,右键打开Git Bash窗口
  3. 执行指令git init
  4. 如果创建成功后可在文件夹下看到隐藏的.git目录(Windows下勾选显示隐藏的项目即可看到)

在这里插入图片描述

在这里插入图片描述

6.基础操作指令

Git工作目录下对于文件的修改(增加、删除、更新)会存在几个状态,这些修改的状态会随着我们执行Git的命令而发生变化。

在这里插入图片描述

6.1 查看状态(status)

  • 作用:查看的修改的状态(暂存区、工作区)
  • 指令:git status

这里新创建了一个file01.txt的文件,使用指令git status查看,现在file01.txt是未跟踪的文件,提示我们可以用指令git add跟踪该文件,即将文件放入暂存区。

在这里插入图片描述

6.2 添加工作区到暂存区(add)

  • 作用:添加工作区一个或多个文件的修改到暂存区
  • 指令:git add 单个文件名|通配符(一般常用指令git add .,将所有的改动加入暂存区)

现在我们用git add .指令将file01.txt文件放入暂存区,现在可以看到文件是即将提交的状态,即将存入我们创建好的仓库中。

在这里插入图片描述

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

  • 作用:提交暂存区内容到本地仓库的当前分支
  • 指令:git commit -m ‘注释内容’

使用指令git commit -m 'add file01'将文件存入仓库中。

在这里插入图片描述

6.4 查看提交日志(log)

  • 作用:查看提交记录
  • 指令:git log [options]
    • options参数:
      • –all:显示所有分支
      • –oneline:将提交信息显示为一行
      • –abbrev-commit:使得输出的commitId更简短
      • –graph:以图的形式显示,查看历史中什么时候出现了分支、合并

查看我们的操作记录,git log --graph在每条记录前面有*符号,当操作记录和分支数量很多的时候,该指令可以让操作者更直观看到仓库的变化。

在这里插入图片描述

6.5 版本回退(reset)

  • 作用:版本切换
  • 指令:git reset --hard commitID(commitID 可以使用git log指令查看)

现在我们新创建文件file02.txt,并提交到我们的仓库中,此时我们的仓库中存在file01.txtfile02.txt两个文件。可以看到这时我们有两条提交记录,前面就是提交的编号,我们可以根据这个编号回退到我们之前的版本。比如这里我们想回到只有file01.txt文件的版本。

在这里插入图片描述

我们输入git reset --hard 86d8f8e指令,此时我们就只有add file01的提交记录,没有add file02的提交记录,仓库中也没有file02.txt,说明我们成功回到了只有file01.txt的版本。

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

如果这时候我们想回到add file02的版本,但是我们记不住提交编号,我们可以通过git reflog指令查看所有的提交记录。

在这里插入图片描述

找到提交编号后,我们就可以回滚到有file01.txtfile02.txt版本的仓库。

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

6.6 删除文件(rm)

  • git rm -f file:将文件从暂存区和工作区中删除
  • git rm --cached file:把文件从暂存区域移除,但仍然保留在当前工作区中

如果只是新创建test.txt文件而没有提交至暂存区,git rm test.txt指令不生效。

在这里插入图片描述

文件提交至暂存区后,git rm test.txt指令仍不生效,但此时我们可以根据提示修改指令,-f即强制删除暂存区和工作区的文件,--cached则是删除在暂存区的文件而保留工作区的文件。

在这里插入图片描述

7.分支

几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的Bug修改、开发新的功能,以免影响开发主线。

7.1 查看分支

  • git branch

目前我们只有一个master分支。

在这里插入图片描述

7.2 创建分支

  • git branch 分支名

创建新分支dev01

在这里插入图片描述

7.3 切换分支

  • git checkout 分支名
  • git checkout -b 分支名(创建并切换分支)

成功切换至dev01分支。

在这里插入图片描述

7.4 合并分支

  • git merge 合并分支名

我们在dev01分支上创建了file03.txt,并提交至仓库中。此时master分支仓库中没有file03.txt。我们的目的是想要master分支中也有file03.txt

在这里插入图片描述

我们先切换到master分支,执行git merge dev01指令就可以合并两个分支。

在这里插入图片描述

7.5 删除分支

  • git branch -d 分支名(删除分支时,需要检查)
  • git branch -D 分支名(不做检查,强制删除)

合并完成后,我们将dev01分支删除,此时就只剩下了master分支。

在这里插入图片描述

8.解决冲突

当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解决冲突,解决冲突步骤如下:

  1. 处理文件中冲突的地方
  2. 将解决完冲突的文件加入暂存区(add)
  3. 提交到仓库(commit)

比如此时master分支有3个文件,我们先创建并切换至dev01分支。

在这里插入图片描述

dev01分支中,我们修改file01.txt的内容,让count=1。(用vim编辑文本时,先按i键进入编辑模式,修改完成后按Esc:,最后输入wq指令保存退出)

在这里插入图片描述

然后将修改后的文件上传至仓库中。

在这里插入图片描述

切换回master分支,修改file01.txt的内容,让count=2,然后上传至对应仓库中。

在这里插入图片描述

当我们尝试合并两个分支时,会提示我们产生了冲突。查看file01.txt内容,其中count=2master分支修改的内容,count=1dev01分支修改的内容,我们需要手动处理产生冲突的地方。

在这里插入图片描述

我们可以修改成想要的效果,在这里我设置count=3。

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

成功解决冲突,最后提交文件至仓库,就可以完成合并分支的操作。

在这里插入图片描述

9.远程仓库Github

9.1 注册Github

地址:https://github.com/

9.2 创建远程仓库

在这里插入图片描述

仓库创建完成后可以看到仓库地址,如下图所示:

在这里插入图片描述

9.3 配置SSH公钥

  • 生成SSH公钥:ssh-keygen -t rsa -C “登陆GitHub的邮箱”(不断回车,如果公钥已经存在,则自动覆盖)

在这里插入图片描述

  • 获取公钥:cat ~/.ssh/id_rsa.pub
  • 在Github上设置SSH

在这里插入图片描述

设置成功如下:

在这里插入图片描述

  • 验证是否配置成功:ssh -T git@github.com

在这里插入图片描述

9.4 操作远程仓库

9.4.1 添加远程仓库

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

  • 命令:git remote add <远端名称> <仓库路径>
    • 远端名称,默认是origin,取决于远端服务器设置
    • 仓库路径,从远端服务器获取此URL(选择SSH)
    • 例如: git remote add origin git@github.com:LenkyAndrews/git_test.git

在这里插入图片描述

9.4.2 查看远程仓库

  • 命令:git remote

在这里插入图片描述

9.4.3 推送到远程仓库

  • 命令:git push [远端名称] [本地分支名]
    • 例如:git push origin master

将本地的master分支仓库上传至远程仓库中。

在这里插入图片描述

查询远程仓库可以看到对应的文件。

在这里插入图片描述

9.5 从远程仓库克隆

如果已经有一个远端仓库,我们可以直接clone到本地。

  • 命令:git clone <仓库路径>

例如,我们新创建一个clone的文件夹,在里面右键打开Git Bash,输入指令git clone git@github.com:LenkyAndrews/git_test.git

在这里插入图片描述

可以看到,已经成功将远端仓库的文件克隆到本地。

9.6 从远程仓库中抓取和拉取

9.6.1 抓取

命令:git fetch [远端名称] [分支名称]

抓取指令就是将仓库里的更新都抓取到本地,不进行合并。比如操作者A新创建文件file04.txt,然后提交到远程仓库中。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

然后操作者B本地的仓库没有更新,此时他要抓取远端仓库的更新到本地。抓取后查看记录此时本地仓库并没有file04.txt文件,故要进行合并分支操作。

在这里插入图片描述

通过git status指令可以查看当前的状态,合并分支后可以看到本地仓库中已有file04.txt文件。

在这里插入图片描述

9.6.2 拉取

命令:git pull [远端名称] [分支名称]

将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge。

比如操作者A又添加了file05.txt文件到远端仓库中。

在这里插入图片描述

操作者B想要更新本地仓库,直接使用pull指令即可完成更新。

在这里插入图片描述

遇到的问题:右键无法打开Bit Bash

问题:右键无法打开Bit Bash,显示找不到应用程序。

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

解决办法:

  1. win+r 快捷键打开运行,输入regedit,打开注册表。

在这里插入图片描述

  1. HKEY_CLASSES_ROOT\Directory\Background\shell这个目录下找到git_guigit_shell两个文件夹,git_gui对应的就是右键菜单中的“Git GUI here" ,git_shell对应右键菜单中的"Git Bash here"。

在这里插入图片描述

  1. 点击文件夹,在右侧可以看到当前路径有误,需要修改。在这里插入图片描述

  2. 双击Icon,修改路径,这里我是删除一个Git/

在这里插入图片描述

  1. 点击command文件夹,双击右侧的默认,修改路径。

在这里插入图片描述

  1. 修改完毕后关闭注册表。

现在右键可以正常打开Git了。

在这里插入图片描述

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

暄踽

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

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

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

打赏作者

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

抵扣说明:

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

余额充值