当前位置: 首页 > news >正文

GIT工具学习【1】:基本操作

目录

  • 0.本地代码分区
  • 1.配置自己的个人信息(设置一次即可)
  • 2.新建仓库
  • 3.提交代码到暂存区(加入购物车)
  • 4.从暂存区撤回(不会改变工作区文件)
  • 5.恢复指定版本(会改变工作区文件)
    • 5.1:第一种情况
    • 5.2:第二种情况
    • 5.3:第三种情况
  • 7.忽略文件
  • 8.查看信息
    • git status (暂存区和工作区的区别)
    • git log(查看历史提交记录)
  • 9.乱码问题解决

这两张图大概看看就可以,有个概念即可
在这里插入图片描述
在这里插入图片描述
链接: git官网
写在前面
我坚持认为,用得上的知识才是有用的,所以学习技能要以实际需求为导向,比如git工具可以管理linux这种庞大的项目,但是问题是,你需要嘛?
我们可以先找把自己的项目实现版本管理,git工具已经有极大的帮助了。

0.本地代码分区

git一共有三个区
工作区:就是我们编辑的那些文件夹,写的那些代码
暂存区:运行add命令就是把文件放到这个区里面
分支区:运行commit命令把暂存区提交到分支区,也就是真正到了git里面。

问题:why not submit directly to the branch area?
为什么要有暂存区,直接提交到分支区不好吗?
答案是:
当项目足够大的时候,这边改一点,那边改一点,暂时一点点的add暂存区,然后一次性的commit,
比如超市购物的时候,不能买一个饼干付一次款,买个饮料付一次款,最好是先放在购物车里面,最后一次性的结算。
很明显,购物车和这个缓存区的发明逻辑很像。
当然还有其他的好处,慢慢就体会到了。

1.配置自己的个人信息(设置一次即可)

这里相当与设置你的身份证,每一次提交都有信息留下,
注意:如果用户名和邮箱设置错了,重新设置一个正确的即可,会覆盖掉的。

$ git config--global user.name "dleid" #你的用户名
$ git config --global user.email"dleid@qq.com" # 配置你的邮箱
$ git config --global init.defaultBranch master # 配置主分支

#查看设置的用户名
$ git config --global user.name  
# 查看设置的邮箱
$ git config --global user.email

2.新建仓库

进入到项目文件夹下,运行下面的命令。

$ git init

init之后会在当前路径下新建.git隐藏文件夹,这个文件夹就是版本区,如果想删除库,可以用rm -rf .git(要谨慎删除)(linux命令),window系统设置显示隐藏文件,直接删除即可。

3.提交代码到暂存区(加入购物车)

add可以每次添加一个文件,文件夹,整个文件夹
根据需求抄一下就可以了。

提交单个文件
$ git add src/status_interfaces/package.xml
提交单个文件夹
$ git add src
提交所有
$ git add.

4.从暂存区撤回(不会改变工作区文件)

能加进去,也能撤回去,开车时候,学会刹车一定比加油门更重要。

#清空暂存区
$ git reset
#从暂存区撤回指定文件
git reset <filename>

5.恢复指定版本(会改变工作区文件)

如果我们的代码改出了各种各样的问题,我们要恢复上一个版本。

5.1:第一种情况

仅仅在工作区更改,希望恢复到上一次提交状态:git checkout 恢复到最近一次提交的状态

5.2:第二种情况

已经add到暂存区:
先git reset 把文件从暂存区撤销掉
再次运行git checkout 覆盖掉工作区版本

5.3:第三种情况

已经commit提交了:
git reset <commit的hash码>,这个时候工作区恢复为上一个版本,暂存区不变
注意如果已经远程到了服务器,这个命令要小心。

7.忽略文件

很多的临时文件,我们是不需要管理的,比如备份文件等等是不需要关心的。

$ git add .gitignore
$ git commit -m "添加Git忽略文件"
$ git add.
$ git commit -m "测试提交临时目录"

##. 示例
以下是一个常见的 .gitignore 文件示例:

# 忽略日志文件
*.log

# 忽略临时文件
*.tmp

# 忽略编译生成的文件
*.pyc
*.class

# 忽略 IDE 配置文件
.vscode/
.idea/

# 忽略依赖文件夹
node_modules/

# 忽略特定文件夹中的所有文件
build/
dist/

# 忽略特定文件,但排除特定文件
*.txt
!README.txt

.gitignore 是一个非常实用的工具,可以帮助你保持仓库的整洁,避免不必要的文件被提交到版本控制中。

8.查看信息

git status (暂存区和工作区的区别)

运行这个命令之后
1.对列出版本库和暂存区的差异:显示如果暂存区版本比较新,就显示需要提交到版本库
在这里插入图片描述
2.对比暂存区和工作区文件的区别:如果工作区有更新,就显示文件有更改
在这里插入图片描述

如果想看详细的更改内容,可以用git diff,也可以git diff ,只显示指定的文件变更

git log(查看历史提交记录)

查看历史提交记录
git log

9.乱码问题解决

第一步:看看是不是管用,不管用就进行第二步操作

git config --global core.quotepath false

第二步:git bash空白处右击选择options
在这里插入图片描述

相关文章:

  • 【Linux】【网络】不同子网下的客户端和服务器通信其它方式
  • Linux之yum详解
  • 算法-二叉树篇17-二叉搜索树中的搜索
  • LSTM预测模型复现笔记和问题记录
  • 通往 AI 之路:Python 机器学习入门-数据结构
  • BGP分解实验·20——BGP选路原则之路径属性
  • Java中Stream流的详细使用介绍
  • 华为OD机试真题:跳房子I (E卷、Java)
  • SpringBoot 项目集成 Prometheus 和 Grafana
  • 项目准备(flask+pyhon+MachineLearning)- 3
  • 计算机毕业设计SpringBoot+Vue.js线上辅导班系统(源码+文档+PPT+讲解)
  • 授权与认证之jwt(五)创建ShiroConfig类
  • 从头开始学SpringBoot—01入门基础配置
  • [3/11]C#性能优化-实现 IDisposable 接口-每个细节都有示例代码
  • CF 118A.String Task(Java实现)
  • Linux基础开发工具——vim(5)
  • NC2227_约瑟夫环
  • 代码随想录算法训练营第三十天 | 卡码网46.携带研究材料(二维解法)、卡码网46.携带研究材料(滚动数组)、LeetCode416.分割等和子集
  • Kubernetes Service服务发现dns之CoreDNS
  • 快速排序算法详解
  • 2025中国互联网大会镇江分站:探讨AI推动产业发展的机遇
  • 上海黄浦均价18.5万元/平米新房日光,成今年全国首个单盘破百亿的豪宅项目
  • 马上评|纠偏“左行右立”,并排站不必有道德压力
  • 广东7月起施行:不得以任何方式强制购买中小学校服或捆绑销售
  • 冒充现役军人、自称有中国兵工集团投资内幕,2人被刑拘
  • 越秀地产约41.49亿元出售北京海淀功德寺项目公司65%股权,此前已质押给华润置地