一小时Git教程(上)

Linux2025-01-16

一小时Git教程(上)
一小时Git教程(下)

1 课程简介

集中式 SVN

分布式 git

2 安装和初始化

https://git-scm.com/downloads

Git Bash Here

(1)命令行

(2)图形化

(3)IDE插件扩展

windows:posh-Git

git config --global user.name "pony"
git config --global user.email "pony@orcycloud.com"

省略(Local):本地配置,只对本地仓库有效

–global:全局配置,所有仓库有效

–system:系统配置,对所有用户有效

git config --global credential.helper store

保存用户名和密码不用每次都输入

git config --global --list

查看Git的配置信息

3 新建仓库

方式一:

git init

方式二:

git clone
mkdir learn-git
cd learn-git
git init
git init my-repo
git clone https://gitlab.orcy.net.cn/pony/anti-ad.git

4 Git的工作区域和文件状态

20230911202557

20230911203332

image-20230911203624296

5 添加和提交文件

  • 创建仓库
git init
  • 查看仓库状态
git status

main分支或master分支

  • 添加到暂存区
git add
  • 提交
git commit   # 支持通配符
  • 配置示例
echo "这是第一个文件!" > file1.txt
git add file1.txt
git rm --cached <file>   # 删除暂存区文件
git commit   # 只提交暂存区的文件
git commit -m "第一次提交"   # -m 指定提交信息
git add *.txt  # 支持通配符
git add .  # 添加当前文件夹里所有文件到暂存区
git log # 查看提交记录
git log --oneline   # 查看简洁提交记录

6 回退版本

git reset 工作区 暂存区
git reset –soft
git reset –hard × ×
git reset –mixed ×

查看暂存区内容

git ls-files
git status

回退到上一个版本

git reset --hard HEAD^

查看操作历史记录

git reflog

回退到指定版本

git reset --hard b270efn

误删除也可以找回

7 git diff查看差异

(1)查看工作区、暂存区、本地仓库之间的差异

(2)查看不同版本之间的差异

(3)查看不同分支之间的差异

git diff  # 默认,工作区与暂存区之间的差异
git diff HEAD  # 工作区和版本库之间的差异
git diff --cache  # 暂存区和版本库之间的差异 
git diff [id1] [id2]   # 比较两个版本之间的差异
git diff [id] HEAD   # 比较指定版本和最新版之间的差异
git diff HEAD~ HEAD   # 比较上一个版本和最新版本之间的差异

         HEAD^ 上一个版本
         HEAD~2 之前2个版本
         HEAD~3 之前3个版本
git diff file3   # 只看指定文件的差异
git diff <分支名1> <分支名2>   # 查看两个分支之间的差异

8 git rm删除文件

方式1:

直接删除文件 + 提交

rm file1.txt
git add .
git commit -m "说明"

方式2:

git rm file2.txt
# 三个区都删除了

git commit -m “delete file2”
# 最后要提交

一小时Git教程(上)-下一朵云

9 gitignore忽略文件

应该忽略那些文件?

(1)系统或者软件自动生成的文件

(2)编译产生的中间文件和记过文件

(3)运行时生成的日志文件、缓存文件、临时文件

(4)涉及身份、密码、口令、密钥等敏感信息文件

echo access.log > .gitignore
git status

# 忽略 access.log 文件

git ls-files  # 查看版本库中的文件

# *.log 匹配所有日志文件
# .gitignore 生效前提,这个文件不能是已经添加到仓库中的(已添加的先删除,再生效).

git rm --cached file1    # 从暂存区删除

git 默认不会将空文件夹添加到仓库中

.gitignore 天加文件夹 temp/ 文件夹以 / 结尾

git status -s  # 查看状态的简略模式

.gitignore 文件的匹配规则

图片2

# 忽略所有 .a 文件
*.a

# 但跟踪所有 lib.a,即使你在前面忽略了 .a 文件
!lib.a

# 只忽略当前目录下的 T0D0 文件,而不忽略 subdir/T0D0
/T0D0

# 忽略任何文件夹下名为 build 的文件夹
build/

# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt

# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf

忽略文件常用语言的模板:github.com/github/gitignore

本文链接:https://www.orcy.net.cn/3656.html,转载请附上原文出处链接

2 条评论

  • 头像
    浪浪山小郎君
    2024-11-06

    老哥,问个多余的事情,你的博客图床是怎么弄的呀,求教

    • 头像
      pony
      2024-11-06

      Minio + picgo

发表评论

电子邮件地址不会被公开。 必填项已用*标注