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


相关推荐
bin915341 分钟前
当AI化身Git管家:初级C++开发者的版本控制焦虑与创意逆袭——老码农的幽默生存指南
c++·人工智能·git·工具·ai工具
鸽鸽程序猿42 分钟前
【Git】分支管理
git
蚂蚁集团数据体验技术43 分钟前
AI 文字信息图表的技术选型
前端·javascript·github
向上_5035829144 分钟前
Android之kotlin学习
开发语言·学习·kotlin
xiaoxiaoxiaolll44 分钟前
《Light: Science & Applications》:LSTM实现高灵敏度、宽范围光纤折射率测量|AI赋能光学传感
学习
青衫码上行1 小时前
分布式版本控制系统Git的安装和使用
分布式·git·svn
xuanloyer1 小时前
linux基础学习--学习bash
linux·学习·bash
.豆鲨包1 小时前
【Git】Git的配置与使用(非常详细)
git·github
worxfr1 小时前
GitHub 上优秀的量化交易系统开源项目
github