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。 这没什么太大的影响,但是在你的项目中进行推送之前,最好检查一下这个配置。


相关推荐
闵帆19 小时前
反演学习器面临的鸿沟
人工智能·学习·机器学习
EnglishJun19 小时前
数据结构的学习(二)---Makefile的使用
linux·运维·学习
呱呱巨基19 小时前
c语言 文件操作
c语言·开发语言·c++·笔记·学习
樱花落海洋11120 小时前
GitHub DeskTop Can`t find URP项目
github
刺客xs20 小时前
git 入门常用命令
大数据·git·elasticsearch
我的golang之路果然有问题20 小时前
使用 Hugo + GitHub Pages + PaperMod 主题 + Obsidian 搭建开发博客
golang·go·github·博客·个人开发·个人博客·hugo
嗯嗯**21 小时前
Neo4j学习1:概述、安装
学习·neo4j·概述·安装·图数据库·jdk21
codezzzsleep21 小时前
fuClaudeBackend:面向fuclaude的轻量后端代理 + Key 管理后台
ai·github·ai编程
Century_Dragon21 小时前
新能源汽车教学新体验:大众ID.4结构原理教学软件
学习
kjzd12321 小时前
GitHub 热门项目趋势分析报告 (2026年2月2日)
github