2小时成为git专家


练习地址:https://learngitbranching.js.org/?locale=zh_CN

核心

基础篇章
git commit
  • git checkout <分支名> 分支切换
git branch
  • git branch 创建分支
  • git checkout -b <新分支名> 创建分支并切换当前分支
git merge
  • // 新建一个bugFix分支,然后提交数据,然后切换到main分支,提交数据, 最后吧bugFix的代码合并到main。使main成为代码是最新
    git checkout -b bugFix (git branch bugFix;git checkout bugFix) 
    git commit 
    git checkout main
    git commit
    git merge bugFix
    
git rebase
  • // 新建一个bugFix分支,然后提交数据,然后切换到mian分支,提交数据,然后切换到bugFix分支,使用用rebase拉到main分支新的提交
    git checkout -b bugFix
    git commit
    git checkuot main
    git commit
    git chekcout bugFix
    git rebase main
    
高级篇
分离 HEAD
  • HEAD 可以指向分支名,也可以指向commit哈希值
相对引用
  • 操作符()、main^、HEAD

    // 切换到bugFix分支的上一个提交记录
    git checkout bugFix^
    
  • 操作符(~)

    // 切换到bugFIx分支的向上3步的提交记录
    git checkout bugFix~3
    
强制移动分支
// 把HEAD 上移一步,把bugFix 强制移动到c0,把main强制移动到c6
git checkout HEAD^
git branch -f bugFix c0
git branch -f main c6
撤销变更
  • git reset :撤销本地提交

  • git revert:撤销远程提交

    分别撤销 local 分支和 pushed 分支上的最近一次提交
    local 本地分支,pushed 远程分支
    
    git reset local
    git checkout pushed 
    git revert pushed 
    
整理提交记录
Git cherry-pick
// Git cherry-pick <提交号1> <提交号2>

// 当前分支main,整理bugFix分支的c3、side分支的c4、another分支的c7(知道hash值了)
git cherry-pick c3 c4 c7
交互式的rebase
// 交互式 rebase 指的是使用带参数 --interactive 的 rebase 命令, 简写为 -i
git rebase -i HEAD~n

pick:保留该commit(缩写:p)
reword:保留该commit,但我需要修改该commit的注释(缩写:r)
edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)
squash:将该commit和前一个commit合并(缩写:s)
fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)
exec:执行shell命令(缩写:x)
drop:我要丢弃该commit(缩写:d)

以上操作完成后.需要强制提交-f。 也就是force
git push -f
杂项
本地栈式提交

确保 main 分支能得到 bugFix 分支上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值