侧边栏壁纸
博主头像
如此肤浅博主等级

但行好事,莫问前程!

  • 累计撰写 24 篇文章
  • 累计创建 12 个标签
  • 累计收到 6 条评论

目 录CONTENT

文章目录

git 基本操作

如此肤浅
2023-05-23 / 0 评论 / 0 点赞 / 342 阅读 / 2,391 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2023-06-16,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

B站视频学习笔记

配置用户名和邮箱

# 配置用户名
git config --global user.name ZhangSan

# 配置邮箱
git config -- global user.email 123@qq.com

# 保存配置,后面就不用每次输入了
git config --global credential.helper store

# 查看配置的用户名和邮箱等信息
git config --global --list
  • --global:全局配置,对所有仓库生效

新建仓库

  • 方式一

    git init
    

    初始化后会生成一个.git目录,存放着这个 git 仓库所有的数据。如果这个.git目录被删除,则当前所在目录不再是一个 git 仓库。

    image-1684927445820

  • 方式二
    从远处 GitHub 上克隆一个仓库到本地。

    git clone 仓库地址
    

工作区域

  • 工作区
    .git所在的目录,我们实际操作的目录。

  • 暂存区
    .git/index,中间区域,用于临时存放即将提交的修改内容。

  • 本地仓库
    .git/objects,Git 存储代码和版本信息的主要位置。

修改完工作区的文件之后,需要将它们添加到暂存区,然后再将暂存区的修改提交到本地仓库中。

我们可以将修改的文件先添加到暂存区中,然后再将暂存区中的文件统一执行提交操作。

image-1684927907386

文件状态

  • 未跟踪(Untrack)
    新创建的,还未被 Git 管理起来的文件。

  • 未修改(Unmodified)
    已经被 Git 管理起来,但文件内容没有发生变化的文件。

  • 已修改(Modified)
    已经修改过的,但还没有添加到暂存区的文件。

  • 已暂存(Staged)
    修改后已经添加到暂存区的文件。

image-1684928276107

添加和提交文件

# 查看仓库状态
git status

# 添加文件
git add 文件名
git add 目录
git add .	# 添加当前目录下所有文件

# 提交文件
git commit -m "本次提交的说明信息"

# 查看提交记录
git log
# 查看简洁的提交记录
git log --oneline

image-1684928970560

commit 只会提交暂存区中的文件,而不会提交工作区中的其他文件。

此时通过git log可查看提交记录:
image-1684930481600

回退版本

可以退回到之前某一个提交的状态。

# 退回到某一个版本,保存工作区和暂存区的内容
git reset --soft 版本ID

# 退回到某一个版本,丢弃工作区和暂存区的内容
git reset --hard 版本ID

# 退回到某一个版本,只保留工作区中的内容,丢弃暂存区中的内容(默认)
git reset --mixed 版本ID
  • 使用场景
    一般当我们连续提交了多个版本,但是又觉得这些提交没有太大意义,可以合并成一个版本的时候,通过回退后再提交。

  • 区别
    --mixed模式,需要执行一下get add操作来将变动的内容重新添加到暂存区;
    --soft模式,则不需要执行get add操作,因为工作区和暂存区中的内容没有变动;
    --hard模式,真的要放弃目前本地的所有修改内容的时候使用,会删除两个版本间工作区和暂存区中的所有修改的内容。

  • 操作回溯

# 查看 git 历史操作记录
git reflog

如果误操作也不用担心,Git 中所有操作都是可以回溯的。找到误操作的版本号,通过reset命令回退到这个版本即可。
image-1684996907155

查看差异

diff 命令可以查看文件在工作区、暂存区、版本库之间的差异,可查看两个文件在不同版本之间的差异,可以查看文件在不同分支之间的差异。

# 不加参数:查看工作区和暂存区之间的差异
git diff

# 查看版本V1和版本V2之间的差异
git diff V1 V2

# 查看当前版本和上一个版本之间的差异
git diff HEAD~ HEAD

# 查看文件fileName在当前版本和上一个版本之间的差异
git diff HEAD~ HEAD fileName

# 查看工作区和仓库之间的差异
git diff HEAD

# 查看暂存区和仓库之间的差异
git diff --cached

HEAD指向当前分支的最新提交,HEAD~HEAD^表示上一个版本,HEAD~3表示 HEAD 之前的 3 个版本。

image-1684997983816

删除文件

# 删除文件,同时在暂存区中删除
git rm 文件名

image-1685003111441

.gitignore 忽略文件

这个文件可以让我们忽略掉一些不应该被加入到版本库中的文件,可以让仓库体积更小、更加干净。

  • 应该忽略的文件:
    ① 系统或软件自动生成的文件;
    ② 编译产生的中间文件和结果文件;
    ③ 运行生成的日志文件、缓存文件、临时文件;
    ④ 设计身份、密码、口令、密钥等敏感信息文件。

image-1685261233177

vscode 中的一些操作

文件状态

image-1685263185644

分支简介和基本操作

多个开发人员可以在自己的分支上进行开发工作,最后再合并到主线代码库中。我们也可以在一个分支上进行新功能的开发,或者建立一个问题修复的分支来处理一些 bug 和缺陷,这样就可以让主线代码仓库处于一个随时可用的比较稳定的状态,而不会影响到其他功能的开发和测试。

# 查看当前所在分支
git branch

# 创建一个新分支branchName
git branch branchName

# 切换到分支branchName上
git checkout branchName # 也可用于恢复文件,默认是切换分支
git switch barnchName # 切换分支推荐使用switch,避免歧义

image-1686145799819

在分支代码测试完成后需要将分支的功能合并到主线代码中,可以使用 git merge 命令来进行合并。

# merge 后是将要被合并的分支,将其合并到目前所在的分支中
git merge branchName

# 例如:将dev分支合并到master分支中
# 1. 需要先切换到master分支
git switch master
# 2. 合并分支
git merge dev
# 合并后git会自动为我们产生一次提交,需要输入提交的消息

可通过命令git log --graph --oneline查看分支图:
image-1686146423660

分支在合并后还是存在的,不会消失,但可以删除分支。

# 删除已经合并的分支branchName(未合并的不能用-d)
git branch -d branchName

# 强制删除分支branchName
git branch -D branchName
0

评论区