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

从零开始的git学习

基本概念:修改记录

1、每个修改记录都有对应的id
2、当发现修改有问题时,可以进行回滚操作。
3、回滚的本质是一次新的更新以复原修改。但是如果不是针对最新记录进行回滚,会出现冲突。
这里需要举例说明

基本概念:分支

1、分支是一个远程仓库中的多个独立副本,副本之间是互不影响的。他们的文件修改记录都是相互独立的。
2、一个远程仓库默认有一个主分支,默认情况下文件会被存储到主分支。
3、创建分支时,需要基于:某个修改记录\某个分支\或者某个tag
4、一个分支的所有修改可一次全部更新到别的分支,称为合并。合并实际上是对目标分支提交一次新修改。但是如果目标分支则修改过某个文件,则可能产生冲突。

基本概念:TAG

1、标记某个修改记录,用于归档对应的分支下截止到这次修改的文件。有点像是游戏中的存档点。

常见操作:git clone 将仓库克隆到本地。

1、克隆的时候默认克隆的分支是主分支

常见操作:git branch/checkout 分支操作

我们clone下来的是一个仓库,仓库有不同的分支,我们可以进行分支的切换。
1、在本地副本下,采用git branch 指令查看仓库的所有分支
2、并且用git checkout xxx进行分支的切换。也就是说,我们可能下载下的是主分支,但是可以在本地直接利用这个命令进行分支切换,这样本地的分支就变成了分支xxx。
3、如果当前副本已经进行了修改,还未提交修改,则无法切换分支。
4、基于3,如果需要使用多个仓库分支代码,建议克隆多个仓库副本
5、如果下载本地副本以后,有别的用户更新了远程仓库,那么当前本地仓库和远程仓库是不一致的。如果此时提交修改,则可能发生冲突。
如果我们在本地副本修改了文件集合A,远程仓库的文件集合B发生了更新,而A和B有交集,也会出现更新冲突导致的更新失败。
问题:如何处理冲突呢?

git stash //将本地的修改存储到临时堆栈中
git pull //获取远程仓库的最新副本
git stash pop// 将之间暂存的本地修改恢复
//可以放心的执行上传操作了
//可以放心的执行上传操作了

问题:如果当前本地我们所在的分支是A分支,而该仓库实际上有多个分支,那么git pull指令更新的是A分支,还是仓库的所有分支?
git pull命令只会更新当前所在的本地分支,而不会同时更新其他分支
git pull的本质是两个操作的组合:
1、git fetch:从远程仓库下载所有分支的最新提交记录(但不合并到本地)。
2、git merge:将当前分支对应的远程分支(如origin/main)合并到本地当前分支。

git 基本配置

git 有三种基本配置:

git config --local  ///对当前仓库生效
git config --global  ///对当前用户的所有仓库生效,会修改~/.gitconfig 或 C:\Users\你的用户名\.gitconfig
git config --system  ///对当前系统下所有用户生效

最常见的配置如下,只需要在第一次使用git的时候配置即可,以后上传代码都不需要再配置了!!!

git config --global user.name  # 查看全局用户名
git config --global user.email  # 查看全局邮箱

git——与服务器的认证配置

ssh-keygen -t rsa -C "your email" 
直接按三次回车,可以看到公钥。
在代码管理平台的profile Settings中 找到SSH Keys, 添加SSH Keys,将公钥复制到Public Key即可
http://www.lryc.cn/news/2395487.html

相关文章:

  • 【C++】位图详解(一文彻底搞懂位图的使用方法与底层原理)
  • Spring Boot 整合 JdbcTemplate,JdbcTemplate 与 MyBatis 的区别
  • sass基础语法
  • 【EF Core】 EF Core 批量操作的进化之路——从传统变更跟踪到无跟踪更新
  • [Go] Option选项设计模式 — — 编程方式基础入门
  • Vue 项目命名规范指南
  • 【笔记】开源通用人工智能代理 Suna 部署全流程准备清单(Windows 系统)
  • 海康工业相机SDK二次开发(VS+QT+海康SDK+C++)
  • 前端面试准备-5
  • Spring Boot 启动流程深度解析:从源码到实践
  • 深度学习|pytorch基本运算-乘除法和幂运算
  • 嵌入式通用集成电路卡市场潜力报告:物联网浪潮下的机遇与挑战剖析
  • 4.2.4 Spark SQL 数据写入模式
  • 论文笔记: Urban Region Embedding via Multi-View Contrastive Prediction
  • Android 缓存应用冻结器(Cached Apps Freezer)
  • 初学者如何微调大模型?从0到1详解
  • 西瓜书第十一章——降维与度量学习
  • Portainer安装指南:多节点监控的docker管理面板-家庭云计算专家
  • NanoGPT的BenchMarking.py
  • 测试用例及黑盒测试方法
  • CentOS 7 环境下部署 LAMP
  • vscode实用配置
  • React 项目中封装 Excel 导入导出组件:技术分享与实践
  • 【PhysUnits】15.1 引入P1后的加一特质(add1.rs)
  • 【2025CCF中国开源大会】RISC-V 开源生态的挑战与机遇分论坛重磅来袭!共探开源芯片未来
  • python完成批量复制Excel文件并根据另一个Excel文件中的名称重命名
  • Vue-2-前端框架Vue基础入门之二
  • CPT208 Human-Centric Computing 人机交互 Pt.7 交互和交互界面
  • ubuntu20.04.5-arm64版安装robotjs
  • [网页五子棋][匹配模块]前后端交互接口(消息推送机制)、客户端开发(匹配页面、匹配功能)