git 工作流程及常用命令/完善ing

git 工作流程及常用命令

git 的核心区域

git 核心有 4 个区域需要了解,从本地到远程依次经过工作区、暂存区、本地仓库和远程仓库,其中的文件状态也会跟随着改变。

从本地到远程这个方向来看:

  • 工作区:其中的内容和普通的文件没有区别,不经过 git 的任何管理,其中的文件状态为 unstracked 或者 unstaged。
  • 暂存区:工作区的文件通过 add 添加到暂存区,此时文件状态转变为 staged,被 git 管理。
  • 本地仓库:暂存区的文件通过 commit 添加到本地仓库,本地仓库即可完成相关文件的所有 git 对应的管理操作(此时远程仓库非必需)。
  • 远程仓库:多人开发时经常使用远程仓库来管理协作开发。本地仓库的内容通过 push 可以同步到远程仓库。

从远程到本地来看:

  • pull 可以将远程仓库的内容更新到本地,但是需要注意的是,pull 会将远程的内容直接更新到工作区,操作比较危险,需要谨慎操作。
  • fetch 和 diff:更安全的方法是 fetch 到本地仓库,然后 diff 比对之后再更新到本地。

image-20221205144216684

git 的部分常用命令

  • 配置用户名和邮箱
# 配置用户名和邮箱
git config --global user.name ""
git config --global user.email ""

# 初始化
git init

# 查看 git 状态以及文件状态,Untracked files 下是工作区(一般是红色),Changes to be committed 下是暂存区(一般是绿色),见下图
git status

# 工作区 ➡️ 暂存区
git add

# 工作区 ⬅️ 暂存区
git restore <file>

# 暂存区 ➡️ 本地仓库
git commit -m "message"

# 暂存区 ⬅️ 本地仓库
git restore --staged <file>

image-20221206211817118

git restore 的两种用法

查到很多资料或说法称 git restore 只关注暂存区,但是看了一些英文介绍以及实操之后,不是非常认同,总结如下:

  • git restore 和 git restore --staged 都要跟后面具体的 file。

  • git restore:可以把暂存区更新到工作区,当工作区进行一些修改之后又打算弃用,那么就可以通过这种方式把之前放到暂存区的内容拿回来,也就是工作区会有变化

  • git restore --staged:网络上多数说,这里是把暂存区的内容放回到工作区,但是也可以理解为是要让暂存区向 HEAD 对齐,也就是暂存区会发生变动,而工作区内容本身不会变化。

画了一个图来做些解释:

下图中从左到右 3 列,整体主要描述工作区、暂存区和本地仓库之间的 git restore 关联,图片主体中每个灰色块的上下位置代表了操作的先后顺序

  • 浅紫色部分即 git restore --staged,这部分没具体画连线,操作之后,暂存区向 HEAD 的 v1 看齐(v2 就不存在了),这个过程中,暂存区发生了变化,而工作区内容不变

  • 红色部分即 git restore,操作之后,工作区向暂存区 v1 看齐,所以工作区的修改会被丢弃,发生变动

  • 而蓝色部分 git rm --cached 会删掉暂存区的内容,同时工作区和暂存区的追踪连接就不见了(也就没办法 git restore 了)。

git restore

参考:

技术蛋老师-Git工作流和核心原理 | GitHub基本操作 | VS Code里使用Git和关联GitHub

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值