Git学习笔记

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

在团队开发中git是必不可少的,它是目前为止最流行的版本控制工具

Git是免费、开源的,由Linux之父花了两周时间写出来的(人与人之间的差距怎么这么大!)

b站狂神:有道无术、术尚可求,有术无道、止于术!

集中式和分布式的区别

除了git还有svn之类的版本控制系统,它们主要区别在于一个是分布式,一个是集中式

分布式

代表:Git

分布式版本控制系统,每个人的电脑都相当于服务器,当你拉取仓库的代码后,你的电脑就是一个完整的版本库,工作时不需要联网,所有版本都在自己的本机里,当你想把自己的代码提交到主仓库时,只需要在联网时合并推送到主仓库就可以了。

集中式

代表:SVN

集中式版本控制系统,都有一个统一的版本号,放在一个统一的服务器上,工作时把最新的版本的代码拉取到电脑上,代码完成后在把写完的代码推送到服务器上,由于所有的操作都需要服务器的支持,对网络要求比较大,而且如果服务器里的数据出了问题,那么所有的数据都会丢失,本机客户端仅保存当前版本的信息。

Git安装及配置

下载

git官网下载:https://git-scm.com/download/win(速度较慢,不推荐)

镜像下载:https://registry.npmmirror.com/binary.html?path=git-for-windows/

安装

下载对应版本后无脑安装即可(更改安装位置的注意一下安装位置)

安装完git后会在开始菜单和右键文件夹下看到对应的git程序,这是因为在刚才安装时候无脑下一步的结果,由于个人不喜欢右键菜单项多出来东西,所以这里介绍下怎么删除它

删除右键菜单项

  1. Win+R输入regedit打开注册表

  2. 进入右键菜单目录:HKEY_CLASSES_ROOT\Directory\Background\shell

  3. 删除下面两个文件夹即可

    HKEY_CLASSES_ROOT\Directory\Background\shell\git_shell
    HKEY_CLASSES_ROOT\Directory\Background\shell\git_gui

Git环境配置

在安装完Git后,是需要一些全局配置的

这里不配置也可以,当遇到要求登陆权限的远程仓库时会让你在手动输入用户名、邮箱、以及密码

Git配置

列出配置的所有命令:git config

设置用户名和密码:

git config --global user.name "your name"      // 设置全局用户名
git config --global user.email "your email" // 设置邮箱

这里的 --global 为全局配置,如果要在特定的的项目中使用不同的名称,那就不使用该参数,只为当前所在仓库配置。

查看所有配置:git config -l

Git相关的配置文件:

  1. 全局配置文件:C:\Users\你的用户名\.gitconfig
  2. 系统配置文件:你的安装目录\Git\etc\gitconfig

Git核心知识

三大区域

git在本地分为三个区域,分别为工作区、缓存区和资源区(本地),其实还有一个远程的一个仓库区,但不在本地就不做过多解释

工作区:平时放项目代码的地方,包括git已经管理的文件区域和新增以及修改的文件区域

缓存区:用于临时存放改动的代码,它本质上是一个文件,把工作区的部分或者全部已经确认需要保存的文件提交至暂存区,先保存一下,如果确认好了可以直接提交到本地仓库中,如果暂时不能做决定可以暂时先放到暂存区,等待下一步操作。

资源区:又称作版本库或仓库区,将某一个历史节点的保存文件列表当做是一个版本,这里面有你提交到所有版本的数据,其中的HEAD指针默认指向最新放入仓库的版本

仓库区:远程的仓库,托管代码的服务器,可以是Gitee、GitHub

工作流程

git的工作流程:

  1. 在工具区中增加或修改文件
  2. 将新的版本代码添加到缓存区
  3. 将缓存取得文件提交到远程仓库

Git项目搭建

创建 Git 版本库

首先,你需要新建一个存放版本库的目录,然后进入到该目录所在路径,然后执行:

# 在当前目录新建一个Git代码库
git init

如果在目录中看到包含有.git的隐藏目录,那就证明创建成功

克隆远程版本库

将远程服务器上的仓库完全镜像一份到本地上

# 克隆一个项目和它的所有版本信息
git clone [url] # https://gitee.com/xuande-hk/xuande-hk.git

我这里克隆到是我静态博客地址,可以更该为别的地址

分支管理

一般情况下master主分支应当保存最稳定的代码,工作时应当在新建的dev分支上工作,当发布时把dev代码合并到主分支master上

Git基础操作

文件操作

文件状态

  1. 已暂存状态(staged),表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照,git add.命令可以将文件状态改为staged

  2. 已修改状态(modified),表示修改了文件,但是还没有保存到数据库中

  3. 已提交状态(committed),表示数据已经安全的保存在本地数据库中

管理文件命令

# 查看指定文件状态
git status [filename]
# 查看所有文件状态
git status # 添加单个文件到暂存区
git add [filename]
# 添加所有文件到暂存区
git add . # 如果暂存区有文件,则将其中的文件提交到仓库
git commit
# 带注释提交,说明你增加或修改的内容
git commit -m 'your comments' # 查看版本库中所有的改动
git diff
# 查看具体文件的改动
git diff Readme.md # 显示所有提交的历史记录
git log
# 单行显示提交历史记录的内容
git log --pretty=oneline # 回退到上一个提交版本
git reset --hard HEAD^
# 回退到上上一个提交版本
git reset --hard HEAD^^
# 回退到未来的某个版本
git reflog
# 会退到 commit_id 指定的提交版本
git reset --hard 'commit_id' # 如果指定文件在工作区,则丢弃其修改
git checkout -- [filename]
# 丢弃当前目录下所有工作区中文件的修改
git checkout -- . # 删除已经被提交过的文件
git rm [filename]

分支操作

分支是版本控制系统中很重要的一个概念,在 Git 中新建、合并等分支的操作非常轻量便捷,因此我们会很经常的用到。

# 查看本地分支信息
git branch
# 查看相对详细的本地分支信息
git branch -v
# 查看包括远程仓库在内的分支信息
git branch -av # 新建一个名称为 dev 的分支
git branch dev 
# 新建完 dev 分支以后,通过该命令切换到 dev 分支
git checkout dev 
# 新建 dev 分支,并切换到该分支上
git checkout -b dev 
# 切换回 master 分支
git checkout master
# 合并指定分支到当前分支
git merge [branch] # 删除 dev 分支
git branch -d dev 

远程仓库

上面的所有命令都是针对本地仓库的操作。但是当我们多个人来协作时,会将代码发布到一个统一的远程仓库,当多个人在本地操作完成以后,会推送到远程仓库。其他人协作时,需要先同步远程仓库的内容,再推送自己的修改。

# git clone 后面的仓库地址,可以支持多种协议,如 https, ssh 等。
git clone https://github.com/git/git.git
# 为本地仓库添加远程仓库
git remote add origin your_remote_git_repo  # 第一次推送时使用,可以简化后面的推送或者拉取命令使用
git push -u origin master
# 将本地 master 分支推送到 origin 远程分支
git push origin master # 拉取远程仓库内容,但不会自动合并
git fetch origin master
# 拉取远程仓库内容,自动合并
git pull origin master # 查看远程仓库信息
git remote [-v]
# 建立本地分支和远程分支的关联
git branch --set-upstream 'local_branch' origin/remote_branch
# 修改本地仓库对应的远程仓库地址
git remote set-url origin [url]

标签管理

在项目开发过程中,当一个版本发布完成时,是需要对代码打上标签,便于后续检索。获处于其他的原因,需要对某个提交打上特定的标签。

# 创建标签
git tag -a 'tagname' -m 'comment' 'commit_id'
# 查看本地仓库中的所有标签
git tag 
# 查看具体标签信息
git show tagname
# 删除本地标签
git tag -d tagname # 推送标签到远程仓库
git push origin tagname
# 推送所有标签到远程仓库
git push origin --tags
# 删除远程标签
git push origin --delete tagname

Git其他操作

绑定IDEA

IDEA版本2021.3.2

git版本:2.36.0

操作系统:win10

打开idea,找到vcs,创建仓库

创建以后vcs会变成git,点击git后找到管理远程

添加远程仓库的地址(没有的话去gitee或者github建一个仓库)

之后点击提交就可以了(需要输入提交信息)

注:控制台输入命令也可以实现

帮你短时间拿下Git,Git详细教程(浓缩的都是精华)的更多相关文章

  1. Git使用详细教程(一)

    很久不发博客,最近有兴趣想写点东西,但 Live Writer 不支持从Word复制图片,疯狂吐槽下 Git使用详细教程(一) Git使用详细教程(二) 该教程主要是Git与IntelliJ IDEA ...

  2. git超详细教程

    GitHub操作总结 : 总结看不明白就看下面的详细讲解. GitHub操作流程 : 第一次提交 : 方案一 : 本地创建项目根目录, 然后与远程GitHub关联, 之后的操作一样; -- 初始化Gi ...

  3. git超详细教程【转】

    转自:http://blog.csdn.net/liuwengai/article/details/52072344 GitHub操作总结 : 总结看不明白就看下面的详细讲解.   GitHub操作流 ...

  4. [置顶] Git学习总结(1)——Git使用详细教程

    一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...

  5. 5.Git使用详细教程

    转自:https://www.cnblogs.com/seven-ahz/p/7712125.html 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的 ...

  6. 项目版本管理Git使用详细教程

    前言 记得刚开始做项目开发的时候都是一个人完成一个项目,单打独斗的开发,也不知道什么是团队开发,没有这个概念,随着工作后来知道公司里项目都是团队开发,这个时候这么多人怎么开发一个项目呢,难道用u盘拷贝 ...

  7. Git使用详细教程(9):git log

    目录 格式化 检索 显示最近提交 Git中使用git log查看提交日志 如果日志很多的话,默认会以分页方式展示 空格可以翻下一页,ctrl+b翻上一页,q退出 格式化 如果想获取每条日志的简要信息, ...

  8. Git使用详细教程(8):Git分支

    目录 创建分支 查看分支 切换分支 删除分支 分支合并 探寻分支本质 创建分支 当我们使用git init projectName命令的时候,Git就会默认帮我们创建一个分支,名字叫做master. ...

  9. Git使用详细教程(1):工作区、暂存区、本地仓库、远程仓库

    之前的写过一篇如何在服务器上搭建Git服务Git服务器搭建,接下来的一段时间,我将详细的讲解Git的使用.看如下一张图片,本篇主要理解一些基本概念. 图中几个名词的意思如下: workspace: 工 ...

  10. git全套详细教程

    git安装 首先,我们要去git的官网下载一个git安装包,双击到无关紧要的步骤我就不详细描述了,直接介绍我们关键的步骤. 选择git包含的内容和打开方式 选择都很清晰,具体情况我不是很清楚,不过选择 ...

随机推荐

  1. Elasticsearch Top10 监控指标

    文章转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484441&idx=1&sn=8292f50 ...

  2. 玖章算术受邀参加红杉Talk「创新的复利」科技专场,共同探讨云计算的前世今生

    9月2日,本周五14:00 「创新的复利」 Sequoia Talk系列论坛,首期直播盛大启动.在第一期科技专场,4位红杉中国资深投资人.8位创新创业者将带我们深入工业软件.机器人.云计算等领域,围绕 ...

  3. Springboot 之 Mybatis-plus 多数据源

    简介 Mybatis-puls 多数据源的使用,采用的是官方提供的dynamic-datasource-spring-boot-starter包的 @DS 注解,具体可以参考官网: https://g ...

  4. 新零售SaaS架构:中央库存系统架构设计

    近年来,越来越多的零售企业大力发展全渠道业务.在销售额增长上,通过线上的小程序.直播.平台渠道等方式,拓展流量变现渠道.在会员增长方面,通过多样的互动方式,全渠道触达消费者,扩大会员规模.而全渠道的库 ...

  5. spring boot项目使用mybatis-plus代码生成实例

    前言 mybatis-plus官方地址 https://baomidou.com mybatis-plus是mybatis的增强,不对mybatis做任何改变,涵盖了代码生成,自定义ID生成器,快速实 ...

  6. Vue3.x+element-plus+ts踩坑笔记

    闲聊 前段时间小颖在B站找了个学习vue3+TS的视频,自己尝试着搭建了一些基础代码,在实现功能的过程中遇到了一些问题,为了防止自己遗忘,写个随笔记录一下嘻嘻 项目代码 git地址:vue3.x-ts ...

  7. Selenium+Python系列(二) - 元素定位那些事

    一.写在前面 今天一实习生小孩问我,说哥你自动化学了多久才会的,咋学的? 自学三个月吧,真的是硬磕呀,当时没人给讲! 其实,学什么都一样,真的就是你想改变的决心有多强罢了. 二.元素定位 这部分内容可 ...

  8. 3.版本穿梭&分支概述

    版本穿梭 如果我们提交了多个版本到本地仓库,想将工作区恢复到历史版本 可以先使用git reflog查看历史记录,获取到版本号 然后使用git rest --hard 版本号 命令恢复到指定版本 gi ...

  9. JS 可编辑表格的实现

    1.实现效果 用户点击语文,数学,英语部分的单元格,可以实现分数的编辑,总分也会随之变化.先看下效果,如图: 2.设计思路 先通过HTML5+CSS3绘制表格,添加input的样式和err提示动画. ...

  10. 如何使用vscode快速配置C语言环境(简单实用)

    需要用到的工具: VSCode(Visual Studio Code) 一.首先打开官网链接,然后根据自己的电脑选择合适的安装程序进行下载. 二.在安装时默认点击下一步,最后记得勾选上添加path到系 ...