git 教程(笔记整理)

1,768 阅读14分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第26天,点击查看活动详情

01-git介绍及环境搭建

1.1-Git介绍

image.png

  • 1.Git是什么?

    • Git版本控制系统一个分布式的系统,用来保存工程源代码历史状态(类似游戏存档)的命令行==工具==

      • ==GIT是一个命令行工具,用于版本控制(存档器)==
  • 2.Git作用是什么?

    • 版本管理工具:其实也就是可以记录你敲代码的每一个环节(类似于玩游戏存档)
  • 3.Git应用场景介绍

    • a. 多人开发代码管理 : 目前我们多人代码的时候,想把代码合并一起是利用最原始的复制粘贴操作。有了git之后,可以一键搞定

    • b.异地开发代码管理:实际开发中,我们上班可能会用公司电脑敲代码。有时候回到家里用自己电脑偷偷加个班,以前的做法是备一个U盘,复制粘贴。有了git之后,直接一键搞定。

    • c.版本管理 :比如我现在公司网站已经做出来了1.0版本在使用,现在计划增加一些新功能,但是这个功能不稳定需要经过开发和测试环节,为了不影响现有的稳定版本。以前的做法是把稳定版本单独拷贝一份增加功能,等做好之后再把以前版本给替换掉。有了git之后可以一键搞定。

    • d.版本回滚:比如这周产品经理提出一个功能,我辛辛苦苦写了一周代码。到了下周,产品经理说这个功能不做了,叫我删掉改成其他功能。我们把代码删掉之后按照产品经理要求又辛辛苦苦写了一周代码。到了下下周,产品经理说这个功能还是没有上次那个好,还是改成上周的吧…………

      • 别着急,有了git之后,一键搞定。
  • 4.常见版本管理工具介绍

    • 1.git:目前使用最多的版本管理工具
    • 2.svn:也有公司在用,用法与git类似(相当于腾讯视频和优酷视频)

1.2-Git安装流程

1.如果在电脑任意文件夹中点击右键,能够出现Git命令选项,则说明安装成功

image.png

mac系统

1.首先使用自带的终端,输入 : git --version , 然后回车如果看到版本号。说明已经安装

2.如果没有看到版本号,可以在终端输入: brew install git , 然后回车等待安装。 安装成功之后重复步骤1,检查是否安装成功

02-配置用户信息

  • 1.安装完git之后,要做的第一件事情就是设置自己的 用户名邮件地址

    • 相当于是登录git账号操作
  • 2.如何获取git账号 : 可以在 码云 注册一个账号

  • 3.配置用户信息命令如下:

    • git config --global user.email "你的码云账号邮箱"
    • git config --global user.name "你的码云用户名(可以随便写)"

通过 git config --global user.name 和 git config --global user.email 配置的用户名和邮箱地址,会被写入到 C:/Users/用户名文件夹/.gitconfig 文件中。这个文件是 Git 的全局配置文件,配置一次即可永久生效。

除了使用记事本查看全局的配置信息之外,还可以运行如下的终端命令,快速的查看 Git 的全局配置信息:

03-git工作流程与常用命令

Git命名作用详细描述
git init初始化git仓库(类似于玩游戏新建一个存档文件)在当前文件夹中新建一个 .git隐藏文件夹
git add .添加文件信息(相当于游戏开始存档)把要提交的文件的信息添加到暂存区中(常用
git commit -m"描述信息"确认添加信息 (确认存档)将暂存区中的文件提交到本地仓库中(常用
git config --global user.email "you@example.com"设置邮箱第一次使用git会让你输入邮箱
git config --global user.name "Your Name"设置用户名第一次使用git会让你输入用户名
git reset --hard 版本号版本回滚(游戏回档)可以让你的文件回退到历史某一个版本
git log查看详细日志(存档日志)会显示你的每一次存档信息
git log --oneline查看简略版日志快速查看版本号
git reflog查看所有日志(包含回滚日志)回档回错了会用到

问题点总结

  • 1.新建项目的文件夹,要进到文件夹里面去之后, 右键点击git bash here

  • 2.git init 不要写错, 出现一个.git隐藏文件夹, 如果没有出现这个文件夹,检查一下自己的电脑隐藏文件夹是不是不显示.

    • 如果不小心项目文件夹建错了,就可以删掉.git文件夹,相当于删档操作(慎用)
    • git一次只能写一个命令,千万不要两个命令连着写
  • 3.注意每一个命令之间的空格

    git add .

    git commit -m"描述的信息"

    这两句代码 add 和后面的点 有空格. commit 和-m中间也有空格.

  • 4.第一次提交会出现让你输入邮箱和用户名, 一行代码一行代码的执行. 复制的时候不要把后面的空格给复制

    • git不能按快捷键CTRL+CV来复制,要选中之后点击右键通过copy和paste来复制粘贴
  • 5.有时候git命名行工具会卡死: 多按几次 q 键就可以退出卡死(相当于卡屏修复)

==1.1-主要工作流程==

  • ==123步一个项目只需要一次,456步频繁使用,789步偶尔会用==

    • 1.新建项目文件夹

    • 2.进入文件夹

    • 3.初始化仓库:git init

    • 4.编码

    • 5.添加文件信息: git add .

    • 6.确认添加信息:git commit -m"描述信息"

    • 7.查看详细日志信息:git log

    • 8.查看简略日志信息:git log --oneline

    • 9.版本回滚:git reset --hard 版本号

      • 通过查看历史提交日志信息就可以找到版本号

1.新建文件夹

2.进入这个文件夹,点击右键选择Git Bash Hear,打开git命令行工具

==3.输入命令 git init初始化git仓库==

  • ==456三个步骤是开发中不断重复的环节==

==4.编码==

==5.添加存档:使用git add .==

  • 注意:这个命令只是将文件信息添加到暂存区,还没有真正存档,需要使用git commit命令确认存档才可以

==6.确认存档:使用git commit -m"描述信息"==

  • 以上流程是实际开发中主要使用流程

7.查看详细提交信息:git log

8.查看简略信息:git log --oneline

9.版本回滚:git reset --hard 版本号

  • git reflog:这个命令可以查看你曾经回滚的记录

1.2-git工作流程与原理总结

  • 1.git工作流程

  • 2.git工作原理

git管理文件分为三个区域: 工作区、暂存区、git仓库

  • 3.查看文件状态(了解即可,几乎不用)

    了解即可,实际开发几乎不用

# 查看文件的状态
git status
​
# 查看简略版信息
git status -s
​
  • 已提交(nothing to commit)

    • 表示没有什么东西可以提交了;即所有的内容都已经提交过了
    • 有的文档也把这个状态叫做 未修改,意思是自上次提交过后,代码还没有修改过
  • 未跟踪(新增的文件)

  • 已暂存(新增的文件,添加到暂存区之后的状态)

  • 已修改(文件曾经被Git记录过了,然后在工作区对他进行了修改)

==04-git远程仓库使用流程==

Git命名作用详细描述
git clone克隆远程仓库代码把服务器的项目文件下载到本地电脑
git push推送代码到远程仓库把本次修改的(本地仓库中git commit -m的代码)代码上传到远程仓库
git pull拉取远程仓库代码将远程仓库中其他人push的代码,拉取到本地仓库

1.1-远程仓库介绍

  • 1.什么是远程仓库?

    • 远程仓库其实就是远程的服务器,帮我们存储代码的

      • 本地git存储:一旦你电脑丢了或者硬盘损坏,直接扑街
      • 远程git存储:如果你电脑坏了换了一个新的,只需要从网上重新下载即可
  • 2.常见的远程仓库有哪些?

    • (1)github:免费

      • 学习时候可以用,工作中有的小公司为了省钱也会用
    • (2)gitlab

    • (3)码云

    • (4)公司自己机房的服务器(工作中遇到)

      • 以上远程仓库使用流程几乎一致
  • 3.什么是GitHub?github.com/

image.png

  • 1.是一个免费的远程代码托管仓库

  • 2.是一个代码托管平台,很多优秀的开源的项目都有放在github上,供大家学习/使用.

    • 在这个网站可以找到很多别人写好的框架,例如jQuery,vue,axios 这个上面都有
  • 3.全球最大代码托管平台,由于使用者几乎都是男性。于是自嘲:"全球最大的同性交友网站"

  • 4.github和git是什么关系呢?

  1. 没有半毛钱的关系,只是名字有点像而已。例如北大和北大某鸟的关系。
  2. git是一个命令行工具,用于代码版本管理
  3. gitthub是一个网站的名字:免费服务器帮别人存东西的(主要存代码)
  • 5.在国内,由于gitthub网速极慢,目前个人或某些小公司一般使用 码云

1.2-远程仓库使用流程

1.在码云网站建立远程仓库

image.png

image.png

2.将远程仓库克隆到本地

  • 克隆命名 : git clone 仓库网址

image.png

3.本地编写代码: git add . 与git commit -m“添加文件信息“

4.将本地代码推送到远程

  • git push

image.png

5.将远程代码拉取到本地

  • git pull

    • git pull:拉取,用于多人开发。比如别人写的代码文件提交到远程仓库,通过这个命令就可以将远程仓库代码拉取到本地

      • 这个命令不会拉取所有代码,只是拉取远程上面新增的代码(把别人写的代码合并到你的本地)
      • 这个命令,在多人开发的时候建议每天上班前执行一次
    • git clone:克隆,将整个远程仓库克隆到本地

      • 这个命名相当于拉取所有的代码(将整个远程仓库文件夹copy到你的本地)
      • 这个命令一般只会在项目开始的时候执行一次

image.png

如何将本地文件夹关联远程仓库

  • 1.在码云创建空仓库

    • 不要勾选那个readme
  • 2.在本地文件夹中执行命名:git remote add origin 仓库地址

  • 3.最后执行:git push -u origin master

1.3-多人开发配置流程

image.png

1.4-多人开发冲突解决

多人开发所有的冲突主要分为三种

(1)push的时候没有pull

(2)文件冲突

(3)代码冲突

  • 1.push的时候没有pull : push的时候只要出现以下这种错误,就是因为别人已经push过了。

    • 解决方案,底下提示已经告诉你了 , 要先pull,然后才能push

image.png

  • 2.文件冲突 : 两个人新建一样的文件

    • 实际开发中,git一般不会出现文件冲突的。 因为在项目分工的时候,一般会以模块页面为单位。(你写你的,我写我的。不会让两个人写一个文件)
  • 3.代码冲突 : 两个人在同一个文件里面写不同的代码

    • 实际开发中,一般一个文件只由一个人维护。 很少出现一个文件,多个人同时写代码情况。
  • 无论是文件冲突还是代码冲突,都可以使用下面方式解决

    • ==注意点== : 解决冲突之后,一定要在第一次时间: add 、commit 、push 。 然后其他同时 pull .

image.png

1.5- 远程仓库SSH配置

  • 1,远程仓库有两种访问方式,分别是HTTPSSSH

    • HTTPS:零配置;但是每次访问仓库时,需要重复输入 Github 的账号和密码才能访问成功

    • SSH:需要进行额外的配置;但是配置成功后,每次访问仓库时,不需重复输入 Github 的账号和密码

      • 实际开发推荐使用SSH方式访问远程仓库
  • 2.SSH 介绍

    • SSH key 的作用:实现本地仓库和 Github 之间免登录的加密数据传输。

    • SSH key 的好处:免登录身份认证、数据加密传输。

    • SSH key 由两部分组成,分别是:

      • id_rsa(私钥文件,存放于客户端的电脑中即可)
      • id_rsa.pub(公钥文件,需要配置到 Github 中)
  • 3.SSH配置流程

    • (1)打开 Git Bash

    • (2)输入命令: ssh-keygen -t rsa -b 4096 -C "你的码云邮箱"

    • (3)连续敲击 3 次回车,即可在 C:\Users\用户名文件夹.ssh 目录中生成 id_rsa 和 id_rsa.pub 两个文件

    • (4)使用记事本打开 id_rsa.pub 文件,复制里面的文本内容

    • (5)在你的远程仓库网址, 点击头像 -> 设置 -> SSH 公钥 -> 粘贴

image.png

1.6-远程仓库使用流程总结

image.png

05-git分支使用流程

Git命名作用详细描述
git branch查看当前工作分支
git branch 分支名新建子分支新建一个小号存档,把当前存档备份到小号中
git checkout 分支名切换工作分支切换当前的账号(换小号刷装备)
git merge分支名合并分支把子分支代码合并到主分支(小号刷得装备移到大号上面)
git branch -d 分支名删除子分支(慎用)删除小号

1.1-分支介绍

  • 1.什么是分支?

    • 分支(branch)相当于给你的远程仓库(主分支master)代码copy一份,然后我们在这个copy的代码上进行开发。等功能做好之后,再把分支的代码推送到主分支.
  • 2.为什么要有分支?

    • a.举例1:比如你的网站第一个版本已经做好发布了,功能也很稳定。现在准备新增一些功能开发2.0版本,这时候如果你在原本稳定代码上工作,万一出现bug就会对原先稳定的代码造成影响。所以我们需要将原先代码copy一份进行开发,等2.0版本功能做好之后再和原先的1.0代码合并(相当于发布2.0正式版本)
    • b.举例2:比如你的项目1.0版本已经正式上线,然后突然出现了bug,如果我们直接在原先代码修复,就会影响其他功能。一般我们就可以建立一个分支(把原代码copy一份),等bug修复完毕之后。再与主分支合并,这样就可以很好的修复bug。一般这种版本称之为 1.x (1.1 、1.2、 1.3)

1.2-分支使用流程

image.png

1.新建仓库,就会有一个默认的master分支

2.新建分支 git branch 分支名

3.切换分支 git checkout 分支名 (创建分支之后,你的代码默认还是在主分支,需要切换工作分支到子分支)

一般开发工作都是在dev分支中进行

4.在新的分支上进行编码

  • git add .
  • git commit -m“描述信息”

5. 合并分支 (功能做完了,开始发布正式版本了,就把分支代码合并到主分支)

注意:合并分支,需要把当前工作分支切换到主分支才可以

6.删除分支git branch -d 分支名 (慎用)

  • 注意:删除分支,也需要切换当前工作分支为主分支
  • git branch : 查看当前仓库的分支状态

7.推送与拉取分支代码到远程仓库

  • 1.查看远程分支: git remote show 仓库别名

  • 2.推送分支代码到远程仓库 : git push -u origin 新分支名称

    • 小技巧 : 根本不需要记这个指令, 直接 git push即可。 如果是分支代码,你的git会自动给你提示,并且在下方告诉你推送这个分支正确的命名是什么。 到时候直接 CV 即可。
  • 3.拉取某个远程分支到本地仓库: git pull origin 分支名

image.png