Git教程(含泪总结)

一、了解Git的基本流程

1. Git工作基本流程

在这里插入图片描述

二、Git安装与配置

2.1 Git安装步骤

  1. 官网下载安装
  2. 点击安装程序,一路next
  3. 检查是否安装成功,桌面右键查看是否有git bash heregit GuI here

2.2 Git基本配置

  1. 桌面打开git bash

  2. 设置用户信息

    git config --global user.name"你的注册名"

    git config --global user.email “你的邮箱”

2.3 给常用指令设置别名(可选

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

  1. 打开用户目录,创建.bashrc文件(有些用户可能不能创建以.开头的文件)

    解决办法:在git bash中使用touch指令 touch ~/.bashrc(~代表的是当前用户的根目录)

  2. 打开.bashrc文件,输入以下内容(如果创建了看不见隐藏文件,在上面勾选显示隐藏文件,百度哈)

    #用于输出git提交日志
    alias git-log = 'git log --pretty=oneline --all --graph --abbrev-commit'
    #用于输出当前所有文件及基本信息
    alias ll='ls -al'
    
  3. 打开gitBash,执行source ~/.bashrc

    source ~/.bashrc
    

2.4 解决GitBash乱码问题(可选)

  1. 打开gitBash执行下面命令
git config --global core.quotepath false

2.${git_home}/etc/bash.bashrc文件最后加入下面两行(git_home意思是:git的安装目录)

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

三、掌握Git常用命令

3.1 获取本地仓库

  1. 任意位置创建目录
  2. 进入该目录,右键打开git bash
  3. 初始化仓库git init
  4. 可以看到该目录下有.git文件,说明初始化仓库完成

3.2 基础操作指令

在这里插入图片描述

  1. 查看修改状态git status
  2. 添加工作区到暂存区(add)git add .
  3. 提交暂存区到本地仓库(commit) git commit -m '提交信息介绍'
  4. 查看提交日志(log)git log

3.3 版本回退操作

  1. 基本语法
git reset --hard commitID
  1. 案例精析(素材准备)

    • 在任意位置创建test文件夹,右键打开git bash执行git init初始化仓库
    • git bash界面执行touch hello.txt指令,生成hello.txt文件,或者自己在test文件下右键新建一个
  2. 案例精析(指令开始)

    • 首先,在以上素材准备完全后,执行以下语句(下面配上效果图哈)

      git add .  
      git commit -m '第一次提交'
      git log
      

在这里插入图片描述

  • 打开hello.txt文件,随便写点东西进去,保存退出,接着二次提交。

    git add .  
    git commit -m '第二次提交'
    git log
    

在这里插入图片描述

  • 最后,假设hello.txt想回到最初没有内容的状态(也就是回到第一提交之后的样子),执行以下语句

    git reset --hard 8ab7db5e8d727670ef1f41d83ed3f50d456da777
    //后面那些是第一次提交后的commitID哈,这个直接赋值自己的,不要照抄哟
    

在这里插入图片描述

最后,打开hello.txt文件,发现确实还原到了第一次提交后的状态(就是里面没有写任何东西);先别关git bash窗口

情景一:回到第一次之后,你觉得第二次写的东西我还需要,我想回到第二次提交后的样子,怎么办?

  1. 找到第二次提交后打印出来的日志,找到第二次提交之后的commitID,执行一些语句,

    git reset --hard f302cb77a30964b32eed4da954343fca747bdfbd
    //commtID为第二次的
    //执行完发现,确实回来了,hello.txt中有自己当初添加的内容了
    

情景二:再来,有的小伙伴,觉得git bash窗口中执行了太多命令,结果执行了clear清空了上面的内容或者是关闭了当前命令行窗口,那怎么才能回到第二次提交之后的样子呢?

在这里插入图片描述

在这里插入图片描述

这样子,就回来呀,是不是觉得很神奇!!

四、分支(重点

4.1 Git分支的概念

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

4.2 常见分支命令

  1. 如何查看分支

    git branch
    
  2. 新建并切换分支

    git checkout -b '新分支'
    
  3. 合并分支

    git merge '分之名称'
    
  4. 删除分支

    git branch -d '分支'
    

4.3 解决合并冲突

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

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

各分支数据互不影响,切换对应分支,可以查看到对应文件。例如下图:dev-logo分支和master分支上的内容各不相同

在这里插入图片描述

但是,往往在实际开发中,开发者有可能处于一个dev-logo分支更改了一个文件,而这个文件刚好也处于master分支上,并且另一个开发者同时也改了master分支上的这个文件的同一个位置。此时,将dev-logo分支合并到master主分支是会发现有冲突

  1. 上面gif图可以看到dev-logo分支上有hello.txt文件,master分支上也有hello.txt文件;此时切换到dev-logo分支上对hello.txt文件进行修改;然后切换到master分支上对hello.txt分支进行修改。

  2. 在处于master分支上,执行git merge dev-logo合并分支,会发现以下提示

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OD1qHFkl-1639795283523)(C:\Users\Jreey\Desktop\个人文件\博客\merge.png)]

  3. 打开任意分支上的hello.txt文件,你会发现以下;图表示的是:HEAD到中间====的是当前分支上修改的内容,dev-logo到中间====dev-logo分支上的内容。

在这里插入图片描述

  1. 打开文件后,根据自己的需要选择要保留的内容,删去除要保留代码之外的所有内容,包括那些git生成的箭头文字等

  2. 添加到暂存区(add)

    特别提醒:

    如果是多人开发同一个项目,在合并之前先把master上的东西先拉取一下,也就是git pull origin master,为的是解决可能有的冲突,解决完了冲突再将代码提交至远程仓库。

开发中分支使用原则和流程

  1. master分支:主要用于项目上线

  2. develop分支:用于部门开发(该分支下创建新的分支进行开发)

在这里插入图片描述

五、配置SSH公钥

  1. git bash下输入ssh-keygen -t rsa
  2. 一路回车
  3. 获取公钥cat ~/.ssh/id_rsa.pub
  4. git bash下返回的公钥复制粘贴到gitee配置公钥界面
  5. 验证是否成功ssh -T [email protected]
  6. 输入yes
  7. 显示hi xxx表示成功

六、远程仓库的使用

  1. 添加远程仓库

    git remote add <远端名字><仓库路径>
    <远端名字>一般用origin
    <仓库路径>分为SSH和HTTPS两种
    
  2. 查看远程仓库

    git remote
    
  3. 推送到远程仓库

    git push [-f] [--set-upstream] [远端名称[本地分支名][远端分支名]]
    
    1. 如果远端仓库名和本地分支名相同,则可以只写本地

      • git push origin master

      • -f 表示强制覆盖

      • [–set-upstream]绑定本地仓库和远程仓库对应

        git branch --vv //查看仓库对应关系
        git branch --set--upstream [远程仓库分支]:[本地仓库分支]
        
  4. 克隆远程仓库

    git clone 仓库地址 [别名]
    
  5. 从远程仓库抓取和拉取

    1. ​ 抓取命令:git fetch [remote name][branch name]
    2. 拉取命令:git pull origin master

    特别提醒:在推送到远程仓库之前,先pull一下远端代码,解决完冲突在推送到远端

七、Git铁令

  1. 切换分支前先提交本地修改的代码

  2. 遇到问题千万别删项目文件夹

  3. 如果是团队协作开发,先拉取远端代码,解决冲突,再合并代码,最终提交代码。
    clone 仓库地址 [别名]

    
    
    
    
  4. 从远程仓库抓取和拉取

    1. ​ 抓取命令:git fetch [remote name][branch name]
    2. 拉取命令:git pull origin master

    特别提醒:在推送到远程仓库之前,先pull一下远端代码,解决完冲突在推送到远端

七、Git铁令

  1. 切换分支前先提交本地修改的代码
  2. 遇到问题千万别删项目文件夹
  3. 如果是团队协作开发,先拉取远端代码,解决冲突,再合并代码,最终提交代码。

猜你喜欢

转载自blog.csdn.net/qq_45835014/article/details/122009535