Git常用命令

设置用户签名

基本语法

复制代码
# 配置用户名和邮箱(首次使用必须配置) 
git config --global user.name 你的用户名 
git config --global user.email 你的邮箱 
# 查看配置信息 
git config --list

说明:

签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git首次安装必须设置一下用户签名,否则无法提交代码。

!warning

注意:这里设置用户签名和将来登录Gitub(或其他代码托管中心)的账号没有任何关系。

初始化本地库

基本语法

复制代码
git init

注意事项

  • 一开始会创建.git的目录作为一个空库
  • 想要在文件资源管理器中查看目录需要打开查看隐藏文件的选项
  • 不要修改.git里面的文件,否则会导致代码上传失败

!tip\] Title \[\[Linux\]\]中的命令在git中也可以使用,因为git一开始就是为了托管Linux代码而生

查看本地库

基本语法

复制代码
git status
  1. 库中无文件
    输出内容
    ![[Pasted image 20250925170716.png]]
    解释
  • on branch master
    在master分支上(在安装时选择的让git决定分支名为默认master)
  • No commits yet
    *目前没有东西提交过
  • nothing to commit (create/copy files and use "git add" to track)
    目前没有什么东西需要提交(空的库)
  1. 库中有文件
    添加一个txt文件示例代码

    vim hello.txt

    打开hello.txt(如果没有该文件创建hello.txt并打开)

输出内容

![[Pasted image 20250925175142.png]]
解释

  • 文件红色代表存在工作区,还没有追踪过文件
  • nothing added to commit but untracked files present use "git add" to track)//你没有添加过任何东西,但已经有一个未被追踪的文件了,但是你可以使用"git add"添加。

添加暂存区

基本语法

复制代码
git add 文件名

输出内容

![[Pasted image 20250925180613.png]]
解释

默认帮你转换换行符将Windows中的换行符换成Linux的
此时本地库状态

![[Pasted image 20250925180840.png]]
解释

  • 前两行与之前一样意思
  • 文件名绿色代表追踪到了文件(存在了暂存区里)
  • 此时文件可删,但本地文件仍然存在,不过变成没有追踪的了(即没有上传到暂存区)

提交本地库

基本语法

复制代码
git commit -m "日志信息" 文件名

输出内容

![[Pasted image 20250925181639.png]]
解释

  1. 警告内容:转换了换行符,前面添加暂存区出现过
  2. 一个主干分支被改变后面是自己写的日志信息
  3. 一个文件被改变,16行(文本中的行数)被插入
  4. 在日志信息前是一个七位版本号、
    此时查看本地库状态
    ![[Pasted image 20250925182323.png]]
  • 第一行与前面一样意思

  • 没有什么东西需要再次提交,工作树是干净的(没有东西)
    查看版本信息

    git reflog //查看精简版的版本信息
    git flog //查看详细的版本信息

!思考如果修改了本地文件会有什么后果?

再次查看本地库的时候文件会显示红色,并提示修改未上传,此时上传则会覆盖历史版本

常用命令

复制代码
# 查看提交历史(简洁版)
git log --oneline

# 查看详细提交历史(详细)
git log
# 回退到指定版本(保留工作区修改)
git reset --soft <提交ID>

# 回退到指定版本(不保留工作区修改)
git reset --hard <提交ID>

版本穿梭的实质

其实是master指针改变了指向的副本

相关推荐
Jaxson Lin13 小时前
Java编程进阶:线程基础与实现方式全解析
java·开发语言
夜喵YM13 小时前
基于 Spire.XLS.Free for Java 实现无水印 Excel 转 PDF
java·pdf·excel
zhangrelay13 小时前
thinkpad等笔记本电脑在ubuntu等linux系统下电池校准如何做?
笔记·学习
茶本无香13 小时前
设计模式之五—门面模式:简化复杂系统的统一接口
java·设计模式
她说可以呀13 小时前
网络基础初识
java·网络·java-ee
没有bug.的程序员13 小时前
Java锁优化:从synchronized到CAS的演进与实战选择
java·开发语言·多线程·并发·cas·synchronized·
_Kayo_13 小时前
Node.JS 学习笔记8
笔记·学习·node.js
知识分享小能手13 小时前
Oracle 19c入门学习教程,从入门到精通,Oracle 数据表对象 —— 语法知识点详解与案例实践(10)
数据库·学习·oracle
麦兜*13 小时前
SpringBoot Profile多环境配置详解,一套配置应对所有场景
java·数据库·spring boot
MetaverseMan13 小时前
rpc节点: synchronized (this) + 双检锁,在 race condition 的情况下分析
java·区块链