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

【Git】入门,基本操作

推荐学习资料

git 官网
git 教程
github 文档

=======================================================

git 的工作流程

git 分区

  • 工作区(WorkSpace):指本地仓库中,除了 .git 目录以外的所有文件和目录;
  • 缓存区(Stage):.git 目录下的 index 文件;
  • 版本库:.git 目录;
  • 本地仓库(Local Repo):没有具体说明位置,概念还是很好理解的,相对于远程仓库而言本地的存储仓库;
  • 远程仓库(Remote Repo):现在常见的 github、码云远程仓库,也可以自行搭建;

git 管理下的文件有四种状态:

gitstatus# 项目文件的状态:跟踪、修改、暂存

  • Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
  • Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件
  • Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改
  • Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified

创建本地仓库

参考

  • 常用命令、基本配置
# 常用命令git# 可查看git常用的命令gitstatus# 项目文件的状态:待提交、文件已入库 文件已修改 暂存状态,建议常用gitcommit-m"消息内容"# 提交到本地仓库 -m 是提交的备注信息gitbranch[新的分支名]# 新建一个分支,但不会立马切换到新建分支gitcheckout-b[分支名]# 新建一个分支,并切换到该新建分支gitmerge[分支名]# 合并该指定分支名到当前分支gitbranch-d[要删除的分支名]# 删除分支gitpush origin--delete[branch-name]# 删除远端分支gitbranch-dr[remote/branch]# 删除远端分支
# 配置 git 的本地的用户信息 默认在C:\Users\用户名\.gitconfiggitconfig--globaluser.name"用户名"# 设置git的用户名gitconfig--globaluser.email"用户邮箱"# 配置git的邮箱
  • 示例:初始化git仓库
# 自选目录,将这个目录变成git管理的仓库,生成.git文件gitinit# 整体流程:修改 - 暂存 - 提交 - 推送gitaddREADME.md#添加文件到本地仓库gitrmREADME.md#本地倒库内删除gitcommit-m"first commit(消息内容/注释)"#提交到本地库并备注,此时变更仍在本地。# git commit后会进入vim界面 可使用"ESC" 后,键盘输入":wq"进行保存退出gitcommit-a##自动更新变化的文件,a可以理解为autogitremoteaddxxx git@github.com:xxx/xxx.git#增加一个远程服务器的别名。gitremotermxxx##删除远程版本库的别名gitpush-uremotename master#将本地文件提交到Github的remoname版本库中。此时才更新了本地变更到github服务上
  • 远程仓库的别名
# 查看关联的远程仓库的别名gitremote 查看 本地仓库关联的 远程仓库gitremote-v查看 本地仓库关联的 远程仓库信息# 修改关联的远程仓库的别名gitremoteaddgithub git@github.com:toFrankie/repo-demo.git 新增 远程仓库别名gitremotermgithub 删除 已存在 远程仓库别名(只会移除本地仓库与远程仓库的管理,不会删除远程仓库的代码)gitremoterenamegithub gitlab 修改 远程仓库别名(也可以先删除再添加)gitremote set-url github git@github.com:toXXXX/repo-demo.git 更新 远程仓库别名 关联的 远程仓库

从GitHub仓库下载至本地

# 从GitHub仓库下载至本地# 选择ssh方式,可读写gitclone git://github.com:xxxx/test.git##以gitreadonly方式克隆到本地,只可以读gitclone git@github.com:xxx/test.git##以SSH方式克隆到本地,可以读写gitclone https://github.com/xxx/test.git##以https方式克隆到本地,可以读写gitfetch git@github.com:xxx/xxx.git##获取到本地但不合并gitpull git@github.com:xxx/xxx.git##获取并合并内容到本地
# 示例:在本地的指定目录下clone在github上的代码 cd D:\test git clone git@github.com:yyzzyyzzyy/single-line-detection.git

git 分支管理

  • 创建分支
gitbranch#显示当前分支是mastergitbranch new_bra#创建分支命名为new_bragitcheckout new_bra#切换到新分支gitaddbranch.txt# 新建文件 并添加到暂存区gitcommit-m"added branch.txt"gitpush origin new_bra##把分支提交到远程服务器,只是把分支结构和内容提交到远程,并没有发生和主干的合并行为。origin为默认的远程仓库的代替名
  • 合并分支
gitcheckout master#切换到新主干gitmerge new_bra##把分支合并到主干gitbranch#显示当前分支是mastergitpush origin master#此时主干中也合并了new_bra的代码,origin为别名
  • 其他
# 更新远程分支列表gitremote update 别名--prune# 查看所有分支gitbranch-a# 删除远程分支,本地未删除gitpush 别名--delete分支名# 删除本地分支gitbranch-d分支名
http://www.jsqmd.com/news/778496/

相关文章:

  • Perplexity AI API封装库实战:构建带引用功能的智能搜索应用
  • 从零实现轻量级LLM推理引擎:nano-vllm核心原理与工程实践
  • LangGraph 的结构
  • vscode-dark-islands的测试运行操作:色彩与图标优化
  • AI任务分解与执行框架:从原理到实战构建智能工作流引擎
  • 5分钟掌握Zotero Style:让你的文献管理从混乱到高效的终极指南
  • vscode-dark-islands主题下的R Markdown编辑:代码块与文本色彩区分
  • MoveIt 核心架构深度解析:理解机器人运动规划的全流程
  • BookPlayer开发者指南:如何为开源音频播放器项目贡献代码
  • 老司机翻车记:双路E5+PVE7.0直通GTX1060,我踩过的那些坑和最终解法
  • Beancount文档建设终极指南:从新手入门到API开发的完整教程
  • #2026最新靠谱包装印刷公司推荐!国内权威榜单发布,广东佛山等地实力企业精选 - 十大品牌榜
  • CodeAtlas:代码可视化分析工具的设计原理与应用实践
  • AI智能体执行器:从意图到安全动作的工程实现
  • 用Matlab手把手教你搭建IMM目标跟踪仿真环境(CV/CA/CT模型代码详解)
  • ***对于UPX反调试一类题的做法***
  • UNIAGENT:统一AI智能体框架的设计原理与实战应用
  • FPGA设计避坑指南:手把手教你搞定跨时钟域信号处理(附Verilog代码)
  • TAO窗口库:跨平台Rust应用开发的终极指南
  • 声学超材料:用共振抵消原理精准降噪,解决低频噪音难题
  • 预加载资源怎么写_link rel=preload用法【操作】
  • Super Productivity周数混乱终极修复指南:从源码分析到彻底解决
  • ai率飙到80%不用慌,亲测三个降ai率技巧,附降ai率工具,帮你高效降ai - 殷念写论文
  • ngx_http_proxy_connect_module安全配置最佳实践:保护你的HTTP隧道代理
  • 第8篇:Java基本数据类型
  • 哪里可以查看 Kubernetes 的官方简介?
  • 数据工程终极指南:掌握高效数据管理策略的7个核心技巧
  • 小红书校招怎么准备:别把它当纯 C++ 公司,推荐、搜索和性能语境才是主线
  • IEEE 1588 PTP协议在工业以太网中的实现:从硬件时间戳到伺服算法的深度解析
  • 从马科维茨模型到Web应用:投资组合优化器的全栈实现解析