Git 学习打卡Day1-基础、高级、远程仓库初步

基础篇

  • git commit :将当前版本与仓库中上一版本进行对比,把所有的差异打包作为一个提交记录。
  • git branch ** :分支非常轻量,只是简单地指向某个提交记录。
  • git checkout **:切换到新的分支上。
  • git checkout -b ** :创建一个分支同时切换到该分支。
  • git merge ** :把**分支的修改合并到当前分支,并生成一个新的合并提交。这个合并提交会同时指向两个分支的最新提交,保留了分支的 "分叉" 历史。
  • git rebase ** :将当前分支的所有提交 "移动" 到**分支的最新提交之后,相当于以**分支的最新状态为 "新基准",重新应用当前分支的修改。不会生成新的合并提交

高级篇

1.分离的 HEAD
  • HEAD :对当前分支的符号引用,总是指向当前分支最近一次提交记录。
  • 分离的 HEAD :让其指向某个具体的提交记录而不是分支名。

2.相对引用
  • 通过哈希值指定提交记录很不方便,所以 Git 引入了相对引用。
    • 使用 ^ 向上移动 1 个提交记录。如 git checkout main^^。tips:可以一直使用 HEAD^ 向上移动。
    • 使用 ~数字 向上移动多个提交记录,如 ~3。
    • -f 选项让分支指向另一个提交。
  • 强制修改分支位置git branch -f main HEAD~3 会将 main 分支强制指向 HEAD 的第 3 级 parent 提交。
3.撤销变更
  • 本地------ git reset:通过把分支记录回退几个提交记录来实现撤销改动。
  • 远程------ git revert

远程篇

  • git clone :在本地创建一个远程仓库的拷贝(比如从 github.com)。
1.远程分支
  • 命名规范:<remote name>/<branch name>。
  • 反映了远程仓库在你最后一次和它通信时的状态。
  • 远程分支有一个特别的属性,在你切换到远程分支时,自动进入分离 HEAD 状态。Git 这么做是出于不能直接在这些分支上进行操作的原因, 你必须在别的地方完成你的工作, (更新了远程分支之后)再用远程分享你的工作成果。
2. git fetch
  • Git 远程仓库的操作可以归纳为两点:向远程仓库传输数据以及从远程仓库获取数据。
  • git fetch 完成了仅有的但是很重要的两步:
    • 从远程仓库下载本地仓库中缺失的提交记录。
    • 更新远程分支指针(如 o/main)。
  • git fetch 实际上将本地仓库中的远程分支更新成了远程仓库相应分支最新的状态。
  • git fetch 通常通过互联网(使用 http:// 或 git:// 协议) 与远程仓库通信。

git fetch 并不会改变你本地仓库的状态。它不会更新你的 main 分支,也不会修改你磁盘上的文件。它可能已经将进行这一操作所需的所有数据都下载了下来,但是并没有修改你本地的文件。你可以将 git fetch 的理解为单纯的下载操作。

3. git pull
  • Git 提供了一个专门的命令来完成先抓取更新再合并到本地分支 这两个操作------ git pull。 它就是 git fetchgit merge 的缩写!
4. git push
  • git push 负责将你的变更上传到指定的远程仓库,并在远程仓库上合并你的新提交记录。一旦 git push 完成, 你的朋友们就可以从这个远程仓库下载你分享的成果了!

注意: git push 不带任何参数时的行为与 Git 的一个名为 push.default 的配置有关。它的默认值取决于你正使用的 Git 的版本,但是在教程中我们使用的是 upstream。 这没什么太大的影响,但是在你的项目中进行推送之前,最好检查一下这个配置。


相关推荐
正经人_x30 分钟前
学习日记34:UNETR
学习
科技林总32 分钟前
【系统分析师】12.3 软件架构描述与表示
学习
wincheshe39 分钟前
AI Agent 开发学习 --- 框架开发实践(三)
人工智能·学习
2501_918126913 小时前
学习所有6502写游戏存档的语句
汇编·嵌入式硬件·学习·游戏·个人开发
星雨流星天的笔记本3 小时前
2.用洗洁精洗过的三口烧瓶的处理方法
学习
云边散步3 小时前
godot2D游戏教程系列二(18)
笔记·学习·游戏
放下华子我只抽RuiKe53 小时前
从零构建高精度 AI Agent Skill:Tech Blog Generator 实战指南
人工智能·prompt·github·ai agent·skills·openclaw·development
風清掦3 小时前
【江科大STM32学习笔记-09】USART串口协议 - 9.1 STM32 USART串口外设
笔记·stm32·单片机·嵌入式硬件·学习
奶茶精Gaaa4 小时前
AI实战(二)生成ui自动化
功能测试·学习·自动化
2401_884662104 小时前
GitHub镜像站搭建全攻略大纲
github