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

Git 快速入门

Git 是什么?

  • Git 是一个分布式版本控制系统
  • 四大区域:
    • 工作区:项目文件的当前状态,即本地目录。
    • 暂存区:保存将要提交的文件快照,是一个中间层,使用git add将文件添加到暂存区。
    • 本地仓库:保存已提交的文件快照,使用git commit提交到本地仓库。
    • 远程仓库:通过git push将更改推送到远程,通过git pull拉取远程更新。

Git 的工作流程

  • 初始化仓库:通过git init创建.git文件夹,包含所有版本控制相关信息。
  • 文件跟踪:
    • 未跟踪文件:刚创建的文件,Git 尚未跟踪
    • 跟踪文件:已被Git 管理的文件,有三种状态:
      • 未修改:文件未更改。
      • 已修改:文件在工作区被修改。
      • 已暂存:文件被添加到暂存区。
  • 基本操作流程:
    • 修改文件:在工作区中编辑文件。
    • 暂存更改:使用git add将修改添加到暂存区。
    • 提交更改:使用git commit将暂存区的文件提交到本地仓库。
  • 分支管理:
    • 分支是对提交快照的指针,可以并行开发。
    • git branch:列出本地分支。
    • git branch -r:列出远程分支。
    • git branch -a:列出本地和远程的所有分支。
    • git checkout <分支名>git switch <分支名>:切换分支。
    • git merge <分支名>:合并指定分支到当前分支。
    • git branch -d <分支名>:删除本地分支(需合并后才能删除,使用 -D 强制删除)。
    • git push origin --delete <分支名>:删除远程分支。
  • 远程操作:
    • 使用git clone克隆远程仓库到本地。
    • 使用git pull拉取远程更新。
    • 使用git push推送本地提交到远程仓库。

基本Git 命令

  • 创建与初始化:
    • git init:初始化一个空的Git 仓库。
    • git clone <url>:克隆远程仓库到本地。
  • 跟踪文件:
    • git add <file>:将文件添加到暂存区。
    • git commit -m "<message>":将暂存区内容提交到本地仓库,可附加备注消息。
  • 查看状态:
    • git status:查看工作区、暂存区的状态。
    • git log:查看提交历史。
  • 分支和合并:
    • git branch:列出分支。
    • git checkout:切换分支。
    • git merge:合并分支。
  • 远程操作:
    • git pull:拉取远程更新。pullfetchmerge的组合。
    • git push <远程名称> <分支名称>:推送本地提交到远程仓库的指定分支。

设置Git

  • 下载Git
  • 设置用户名
    • 全局设置:git config --global user.name "Your GitHub Name"
    • 当前仓库设置:git config user.name "Your GitHub Name"
  • 设置邮件地址:
    • 全局设置:git config --global user.email "Your GitHub Email"
    • 当前仓库设置:git config user.email "Your GitHub Email"

关于远程仓库

  • 添加远程仓库:git remote add <远程名称> <远程url>
  • 更改远程仓库的URL:git remote set-url
  • 重命名远程仓库:git remote rename <远程原名> <远程新名>
  • 删除远程仓库:git remote rm <远程名称>

GitHub流

  • 创建分支:通过创建分支,可以创建一个工作空间,而不会影响默认分支。
  • 进行更改
  • 创建拉取请求:要求协作者对你的更改进行反馈。
  • 解决审查评论
  • 合并拉取请求:拉取请求获得批准后,合并你的拉取请求。 这将自动合并你的分支,以便你的更改显示在默认分支上。
  • 删除分支:合并拉取请求后,删除您的分支。 这表明分支的工作已经完成,可防止您或其他人意外使用旧分支。
http://www.lryc.cn/news/506725.html

相关文章:

  • AI学习记录 - 依据 minimind 项目入门
  • 数据结构----链表头插中插尾插
  • 设计模式-读书笔记
  • c语言----选择结构
  • KS曲线python实现
  • 解决matplotlib中文乱码问题
  • 实操给桌面机器人加上超拟人音色
  • git stash 的文件如何找回
  • 皮肤伤口分割数据集labelme格式248张5类别
  • uni-app开发AI康复锻炼小程序,帮助肢体受伤患者康复!
  • 双内核架构 Xenomai 4 安装教程
  • 【redis的使用、账号流程、游戏服Handler的反射调用】1.自增id 2.全局用户名这样子名字唯一 3.
  • neo4j 图表数据导入到 TuGraph
  • 启动报错java.lang.NoClassDefFoundError: ch/qos/logback/core/status/WarnStatus
  • 【ubuntu18.04】ubuntu18.04挂在硬盘出现 Wrong diagnostic page; asked for 1 got 8解决方案
  • kubeadm安装K8s高可用集群之集群初始化及master/node节点加入calico网络插件安装
  • 游戏何如防抓包
  • 【LeetCode】每日一题 2024_12_19 找到稳定山的下标(模拟)
  • 运维 mysql、redis 、RocketMQ性能排查
  • [SAP ABAP] 将内表数据转换为HTML格式
  • LLM大语言模型私有化部署-使用Dify与Qwen2.5打造专属知识库
  • 使用C语言连接MySQL
  • PyTorch 2.0 以下版本中设置默认使用 GPU 的方法
  • 信号槽【QT】
  • 【UE5 C++课程系列笔记】10——动态单播/多播的基本使用
  • 点击展示大图预览
  • 【C++】分书问题:深入解析、回溯法高级应用与理论拓展
  • java开发入门学习五-流程控制
  • 【FFmpeg 教程 一】截图
  • 北邮,成电计算机考研怎么选?