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

版本控制器-git

引言

不知道你工作或学习时,有没有遇到这样的情况:我们在编写各种文档时,为了防止文档丢失,更改失误,失误后能恢复到原来的版本,不得不复制出⼀个副本,比如:

“报告-v1”

“报告-v2”

“报告-v3”

“报告-确定版”

“报告-最终版”

“报告-究极进化版”

...

每个版本有各自的内容,但最终会只有⼀份报告需要被我们使用 。

但在此之前的⼯作都需要这些不同版本的报告,于是每次都是复制粘贴副本,产出的⽂件就越来越

多,文件多不是问题,问题是:随着版本数量的不断增多,你还记得这些版本各自都是修改了什么

吗?

文档如此,我们写的项目代码,也是存在这个问题的!!

1.git

1.1git是什么

为了能够更方便我们管理这些不同版本的文件,便有了版本控制器。所谓的版本控制器,就是能让你了解到⼀个文件的历史,以及它的发展过程的系统。通俗的讲就是⼀个可以记录⼯程的每⼀次改动和版本迭代的⼀个管理系统,同时也方便多人协同作业。目前最主流的版本控制器就是 Git 。Git 可以控制电脑上所有格式的文件,例如 doc、excel、dwg、 dgn、rvt等等。对于我们开发⼈员来说,Git 最重要的就是可以帮助我们管理软件开发项目中的源代码文件

1.2git安装

yum install git

1.3如何在git中下载项目到本地

首先需要在git中复制项目的链接,然后在xshell中创建好一个放置代码的目录,其中url就是我们复制的链接;

git clone---获取远端仓库

git clone [url]

1.4如何查看仓库状态

git status

M README.md # 已修改但未暂存
M index.html # 已修改并已暂存
A newfile.txt # 新增文件(已暂存)
?? untracked.c # 未跟踪文件
D deleted.txt # 已删除

1.5 如何忽略掉不想本地托管上传的文件

.gitignore

① 在项目根目录创建

touch .gitignore

② 或用编辑器创建

vim .gitignore

③基本语法规则

# 注释以 # 开头
# 忽略所有 .log 文件 *.log

secret.txt config.ini

# 忽略目录(结尾加 /)

node_modules/ build/ dist/

# 不忽略某个特定文件(用 !)

!important.log # 除了 important.log

# 忽略模式匹配

temp-*.txt # 忽略所有 temp- 开头的 .txt 文件 *.py[cod] # 忽略 .pyc, .pyo, .pyd 文件

1.6如何查看项目的提交历史记录

git log

显示、在什么时候为什么(提交信息)修改了代码。

# 查看最近5次提交 git log -5 --oneline # 查看今天的提交 git log --since="today" --oneline # 查看本周的提交 git log --since="1 week ago"

1.7git pull

(1) git pull 是从远程仓库拉取最新代码并合并到本地的命令。

git pull = git fetch + git merge 拉取更新 下载远程代码 合并到本地

(2)基本语法

git pull [远程名] [分支名]

(3)多人协作场景

# 你开始工作前 git pull origin main # 1. 拉取最新代码 # 你编写代码... vim file.c git add file.c git commit -m "添加新功能" # 提交前再次拉取(防止冲突) git pull origin main # 2. 拉取别人提交的代码 # 如果有冲突,解决冲突 # git add 解决后的文件 # git commit # 推送你的代码 git push origin main

1.8三板斧

1.8.1 git add

将代码放置在刚才下载好的目录里,将需要用git管理的文件告诉git;

git add [⽂件名]
1.8.2 git commit

Git 提交命令,将暂存区的更改保存到本地仓库。

git commit -m "提交说明"
1.8.3 git push
同步到远端服务器上
git push
需要填⼊用户名密码. 同步成功后, 刷新 Github ⻚⾯就能看到代码改动了。

总体来说,

# 1. 修改文件 vim file.c # 2. 添加到暂存区 git add file.c # 3. 提交到本地仓库(就是你现在问的) git commit -m "修复bug:优化了文件读取逻辑" # 4. 推送到远程仓库(可选) git push

1.9工作中怎么使用git
http://www.cnnetsun.cn/news/1382849.html

相关文章:

  • Cosmos-Reason1-7B智能体(Agent)开发入门:构建你的第一个AI助手
  • Qwen3-32B私有部署镜像解析:CUDA12.4与PyTorch2.0.1二进制兼容性验证报告
  • 模电实战手记之《负反馈:从概念到四种组态的精准识别》
  • 免安装光谱分析工具:一键计算CIE三刺激值与色温(CCT)
  • 计算机毕业设计java基于微信小程序的首饰商城系统 基于微信小程序的珠宝饰品在线销售平台设计与实现微信小程序驱动的轻量化首饰商城系统研发
  • AI 大模型到IDE/插件的使用
  • FPN特征金字塔网络实战:如何在YOLOv5中集成并提升小目标检测效果
  • 频谱分析仪实战指南:从基础设置到精准测量
  • 蝶形激光器驱动温度控制全解析:为什么线性控温比PWM更适合种子源?
  • 终极散热控制方案:3步解决Dell G15笔记本过热问题
  • 剩余参数(Rest Parameters,语法为 ...args)替代旧版 arguments 对象
  • Element-plus虚拟表格实战:如何用Vue3快速构建高性能预约管理系统
  • MapStruct进阶指南:解锁条件映射与异常处理的实战技巧
  • 最新PHP盲盒商城系统源码 晒图+免签+短信验证+在线回收 thinkphp框架
  • Secure Boot与Linux兼容性:如何在Ubuntu 22.04上配置安全启动
  • 超酷炫!19 台空压机集中控制系统揭秘
  • 代码智能助手IQuest-Coder-V1-40B-Instruct部署教程:Docker-compose全流程
  • AI绘画新手入门:基于Anything V5的Web服务快速搭建指南
  • SVN权限控制的核心原理
  • 今天,我遇到了一个非常有趣的研究项目,关于电热综合能源系统的优化调度问题。听起来可能有点 technical,但咱们一步步来分析
  • 从手机到智能手表:ROM、RAM和FLASH在消费电子产品中的实际应用对比
  • 计算机网络面试必问:从OSI七层到TCP三次握手,一次搞懂核心概念
  • 【实战指南】微信小程序分包优化策略与性能提升
  • Fish-Speech-1.5在虚拟偶像中的应用:个性化语音合成方案
  • 2-to-1多路选择器的Verilog实现与全流程验证
  • GLM-OCR入门指南:3步完成Ubuntu系统下的模型部署与调用
  • 网络模拟器双开指南:华三HCL与华为ENSP的和平共处之道
  • 解锁VMware macOS支持:使用Unlocker工具的完整技术指南
  • springboot微信小程序社区居民传染病防治信息系统
  • Z-Image-Turbo模型性能优化:JavaScript实现前端流式图片生成与预览