【无标题】

本文详细介绍了Git的各种操作,包括gitcommit创建快照,gitbranch管理分支,gitmerge和gitrebase进行合并,以及如何使用gitpush与远程仓库交互。同时,还讲解了如何使用gitreset和gitrevert撤销变更,以及通过gitrebase-i整理提交历史。此外,还涉及了gittag和gitfetch、gitpull、gitpush等远程操作。
摘要由CSDN通过智能技术生成

git commit

提交->快照
父节点(继承)

git branch

分支->指向
git branch:新分支名
git checkout -b:新分支名(新建+切换分支)
git checkout 分支名/git switch 分支名

分支与合并

git merge 分支名:将分支名指向的节点和head指向的节点合并,合并两个父节点产生一个新的提交记录
git rebase 分支名:将需要被重建的节点以及他的后代节点依次和重建的父节点(分支名)合并,从当前分支和分支名代表的分支开始分开的位置开始

相对引用

使用^向上移动1个提交记录
使用~<num>向上移动多个记录
git branch -f 分支名 要移动到的分支:将分支移动到指定的位置

撤销变更

git reset 分支名:将分支移动回退几个记录
git revert 分支名:将当前HEAD处来自分支名处的更改撤销,产生一个新的提交

整理提交记录

git cherry-pick 提交号:将提交号处的提交作为新增,产生一个新的提交
git rebase -i 分支名:调整从HEAD处到分支名位置的节点(顺序、删除、合并)


git commit

提交->快照
父节点(继承)

git commit --amend:修改最后一次提交

git branch

分支->指向
使用1个^表示前1个提交记录
使用^2表示合并提交记录的第二个父结点
使用~<num>表示前多个提交记录(1可以省略)

git branch 新分支名:新建分支
git checkout -b 新分支名:新建+切换分支

移动HEAD指向

git checkout 分支名/提交号
git switch 分支名/提交号

移动分支指向

git branch -f 分支名 要移动到的分支名/提交号:将分支移动到指定的位置(若HEAD位于移动的分支上,HEAD会随着一起移动)

移动HEAD+分支指向

git reset 分支名/提交号:将分支移动回退几个记录

产生新的提交

git merge 分支名/提交号:将分支名指向的节点和head指向的节点合并,合并两个父节点产生一个新的提交记录

git rebase 分支名/提交号:将需要被重建的节点以及他的后代节点依次和重建的父节点(分支名)合并,从当前分支和分支名代表的分支开始分开的位置开始

git revert 分支名/提交号:将当前HEAD处来自分支名处的更改撤销,产生一个新的提交

git cherry-pick 分支名/提交号:将提交号处的提交作为新增,产生一个新的提交

git rebase -i 分支名:调整从HEAD处到分支名位置(开始分叉的位置)的节点(顺序、删除、合并)

Git tag

git tag 标签名 提交号(提交号不写代表HEAD)

git describe 提交号(提交号不写代表HEAD)

git clone

远程分支反映了远程仓库(在你上次和它通信时)的状态
远程分支有一个特别的属性,在你检出时自动进入分离 HEAD 状态,不能在远程分支上做提交
远程分支可以像本地分支一样被用来合并

git fetch remote place/git fetch remote source:destination做了什么:

  • 从远程仓库下载本地仓库中缺失的提交记录
  • 更新本地仓库中的远程分支指针
  • 后一条只能在未检出的分支上进行
  • 没有source,则创建分支

git pull remote place/git pull remote source:destination

  • 相当于将git fetch和git merge两条指令合在一起

git push remote place/git push remote source:destination

  • 你的变更(没有指针指向的叶子节点将不会上传)上传到指定的远程仓库,并在远程仓库上合并你的新提交记录
  • git push 不带任何参数时的行为与 Git 的一个名为 push.default 的配置有关。它的默认值取决于你正使用的 Git 的版本
  • 将分支推送到远程仓库前需要确保做出的改动是基于远程仓库该分支的最新版本(fetch+rebase(git pull --rebase)/fetch+merge(git pull))
  • 没有source,则删除远程仓库对应的分支
  • 上传本地的提交记录到远程仓库
  • 更新远程仓库中的远程分支指针
  • 更新本地仓库中的远程分支指针

在远程分支上检出分支使得它们关联

git checkout -b totallyNotMain o/main
git branch -u o/main foo

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值