Git从入门到精通(全)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 目录前言1. Git安装2. 常用命令前言免费、开源分布式版本控制系统快速高效处理从小型到大型的各种项目易于学习,占地面积小,性能极快优缺点:深究其分布式版本其集中式版本控制工具有缺点也有优点,可看到项目中内容管理,管理员也可管理单一系统也比较容易缺点就是中央服务器的单点故障分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)工作机制工作区:通

前言

  • 免费、开源分布式版本控制系统
  • 快速高效处理从小型到大型的各种项目
  • 易于学习,占地面积小,性能极快

==优缺点:==
深究其分布式版本
其集中式版本控制工具有缺点也有优点,可看到项目中内容管理,管理员也可管理单一系统也比较容易缺点就是中央服务器的单点故障

分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:

  1. 服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)
  2. 每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)

==工作机制==
工作区:通过写好的代码,放在了磁盘区,不是特指编译器中的代码
临时存储:通过工作区git add放到此处
本地库:通过临时存储的git commit放到此处
远程库:通过本地库上传到远程库,代码托管中心是基于网络服务器的远程代码仓库

1. Git安装

具体如何安装可查看我这篇文章
Git的安装配置超详细版本(全)

2. Git常用命令

命令名称 作用
git config --global user.name 用户名 设置用户签名
git config --global user.email 邮箱 设置用户签名
git init 初始化本地库
git status 查看本地库状态
git add 文件名 添加到暂存区
git commit -m "日志信息" 文件名 提交到本地库
git reflog 查看历史记录
git reset --hard 版本号 版本穿梭

下载他人的项目通过git clone 即可
有时候在github下的文件有点卡
需要进行端口配置(查看本机系统的配置)
之后window输入

  1. set http_proxy=http://127.0.0.1:7890
  2. set https_proxy=http://127.0.0.1:7890

如果是linux,set改成export

如果上传到自已的github上,直接跟着官网走就可

工作中常用的命令:

命令 参数
git diff 查看代码有无修改
git branch xx 创建分支
git branch -d xx 删除分支
git checkout xx 切换分支
git stash 放弃修改
git fetch 远程创建了分支,本地要用这个才看得到有什么分支

2.1 设置用户签名

通过使用如上的命令
截图如下

在这里插入图片描述
签名的作用是区分不同操作者身份,以此确认本次提交是谁做的
==这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任何关系==

2.2 初始化本地库

通过使用命令git init
初始化之后会生成一个隐藏文件
在这里插入图片描述

2.3 查看本地库状态

通过git status
首次查看与有文件提交时不一样的

首次查看
在这里插入图片描述
新增文件之后再次查看是不一样的状态
通过书写一个txt文件
在这里插入图片描述
此处的文件还是红色的
说明是还没提交到缓存区
如果提交到缓存区就会变成蓝色

2.4 添加缓存区

通过git add 文件名
具体命令大致如下
在这里插入图片描述

如果要删除文件,通过rm进行删除
但是删除的只是缓存区
通过ll还可查看到存在
在这里插入图片描述
而且通过查看其状态的时候
git status发现为红色
在这里插入图片描述
还需要将其添加为添加到缓存区中
在这里插入图片描述

2.5 提交本地库

通过git commit -m "日志信息" 文件名
通过其git status也可看出其不同
而且查看日志也可看出版本更新
最后的截图如下
在这里插入图片描述

2.6 修改文件

修改文件之后,再次查看其状态
会检测到其文件已经被修改
在这里插入图片描述
之后再将其上传到缓存中
在这里插入图片描述

2.7 历史版本

git reflog 查看版本信息
git log 查看版本详细信息

在这里插入图片描述

2.7.1 版本穿梭

本身默认查看使用cat 的时候,是最新版本
如果要穿梭到之前的版本,则需要通过 git reset --hard 版本号
其日志的版本号,简易复杂版本的号字段有些不同
之后查看cat只是显示之前的版本

在这里插入图片描述
查看其之前的版本
在这里插入图片描述
Git 切换版本,底层其实是移动的 HEAD 指针

3. Git分支操作

在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行

==优点==

  • 同时并行推进多个功能开发,提高开发效率
  • 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可

==分支常用命令==

命令名称 作用
git branch 分支名 创建分支
git branch -v 查看分支
git checkout 分支名 切换分支
git merge 分支名 把指定的分支合并到当前分支上

查看分支可以通过git branch -v
*表示当前的分支路径
在这里插入图片描述
创建分支git branch 分支名
在这里插入图片描述

切换分支git checkout 分支名
在这里插入图片描述
如果再同一个部位修改数据
使用git merge 分支名
新数据会直接进行覆盖旧数据
如果是不同部位进行修改,系统无法判断哪一个数据才是真的
必须人为进行修改数据
之后再提交到缓存区
再提交到本地库(本地库不能带文件名,不然有歧义识别不出来哪一个)
使用命令 git commit -m "merge ss" (不用文件名)

==具体创建分支的原理是==
当前所在的分支,其实是由 HEAD 决定的。所以创建分支的本质就是多创建一个指针

4. GitHub 操作

  1. 创建远程仓库
  2. 输入仓库名

==远程仓库命令==

命令名称 作用
git remote -v 查看当前所有远程地址别名
git remote add 别名 远程地址 起别名
git push 别名 分支 推送本地分支上的内容到远程仓库
git clone 远程地址 将远程仓库的内容克隆到本地
git pull 远程库地址别名 远程分支名 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并

起好别名之后
可以通过别名上传文件

==团队内合作==
可以通过github内中的设置有个manger access进行邀请账户
之后受邀人通过复制该链接进行同意即可

受邀人克隆clone代码之后编辑在上传可以实现更改代码的模型

==跨团队合作==
通过代码的fork变成自已的,之后修改之后通过pull request请求发送
如果成功就会变成是你修改的

==ssh免密登录==
在这个目录下
有ssh的公钥密钥文件
在这里插入图片描述
先删除该文件 rm -rvf .ssh

之后通过用户获取ssh的公钥密钥,在发送给其他人
ssh-keygen这是协议

 ssh-keygen -t rsa -C 用户

之后进入cd .ssh内复制cat id_rsa.pub该文件给其他人
其他人通过设置的
在这里插入图片描述
即可免密登录

5. IDEA 集成 Git

先设置一个忽视文件
与项目的实际功能无关,不参与服务器上部署运行
设置一个 git.ignore
内容文件为

# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see 
http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml

在.gitconfig 文件中引用忽略配置文件

[user]
name = manong
email = yanjiuseng
[core]
excludesfile = C:/目录/git.ignore

==如何在idea中设置git的插件==
在这里插入图片描述
==创建一个本地库==
在这里插入图片描述
之后右键可以上传到缓存或者是本地库中
如果查看版本号可以通过idea左下角的log日志查看
点击 Version Control,然后点击 Log 查看版本

==创建切换分支==
选择 Git,在 Repository 里面,点击 Branches
或者idea右下角的git branch

切换分支可以通过点击idea右下角的git branch中的check out

==合并分支并且解决冲突==
合并分支 同理也是idea右下角的git branch中的merge into current

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
7月前
|
开发工具 git 索引
【git】入门
【git】入门
67 2
|
7月前
|
Shell Linux 开发工具
Git入门(windows系统)
Git入门(windows系统)
73 1
|
1月前
|
缓存 Java Shell
[Git]入门及其常用命令
本文介绍了 Git 的基本概念和常用命令,包括配置、分支管理、日志查看、版本回退等。特别讲解了如何部分拉取代码、暂存代码、删除日志等特殊需求的操作。通过实例和图解,帮助读者更好地理解和使用 Git。文章强调了 Git 的细节和注意事项,适合初学者和有一定基础的开发者参考。
48 1
[Git]入门及其常用命令
|
4月前
|
存储 Shell 开发工具
Git 入门:从零开始掌握版本控制的艺术
【8月更文第16天】 在软件开发中,版本控制是一项至关重要的技能。它帮助开发者追踪文件的变化历史,并且可以在多个开发者之间协同工作。Git 是目前最流行的分布式版本控制系统之一。本文将带你从零开始学习 Git 的基本使用方法。
65 0
|
5月前
|
数据可视化 程序员 开发工具
小白也能玩转Git:从入门到实战详细教程
小白也能玩转Git:从入门到实战详细教程
|
7月前
|
开发工具 git 开发者
Git入门:轻松掌握版本控制的艺术
【5月更文挑战第13天】Git是流行的版本控制系统,适合各种规模的项目。本文引导读者入门Git,学习版本控制艺术。内容涵盖Git简介、安装配置、基础操作(如初始化、添加文件、提交、查看状态和历史)、分支管理、协作开发(克隆、推送、拉取)及高级用法,如标签管理、子模块和版本比较。遵循最佳实践,如频繁提交、有意义的提交信息和合理分支管理,可提升开发效率。
|
6月前
|
存储 Linux 开发工具
Git【入门】这一篇就够了
Git【入门】这一篇就够了
51 0
|
存储 Shell 开发工具
【Git】Git安装入门使用&常用命令&Gitee远程仓库上传文件与下载
【Git】Git安装入门使用&常用命令&Gitee远程仓库上传文件与下载
162 0
|
7月前
|
程序员 开发工具 git
好程序员Git入门到精通教程
本课程主要通过命令行和idea来介绍Git的安装、仓库创建、工作流、远程仓库、克隆仓库、标签管理和分支管理等Git的主要内容。 另外关于GitHub的使用介绍也有完整的说明和使用,接轨生产环境使用方式。
45 1
好程序员Git入门到精通教程
|
7月前
|
数据可视化 开发工具 git
Git代码版本管理入门
Git代码版本管理入门