常用的git命令一网打尽

本文详细介绍了Git的各种常用命令,包括查看状态、创建与切换分支、提交代码、合并分支、撤销变更、标签管理、远程仓库操作等,并探讨了交互式rebase、查找Bug提交记录及团队合作的最佳实践。通过实例解析,帮助读者深入理解Git的工作流程。
摘要由CSDN通过智能技术生成

# 查看状态
git status
git log

# 创建分支
git branch <分支名>

# 创建并切换分支
git checkout -b <分支名>

# 提交代码
git commit -m "备注内容"

# 切换分支
git checkout <分支名>
git switch <分支名>  //git 2.23版本引入

# 合并分支  
git merge  <分支名>  // 把其他分支合并到自己身上来
git rebase <分支名>  // 把自己合并到主分支前面去-让代码的开发路线更清晰,让并行开发看起来像是顺序开发

# 分离HEAD  HEAD的原理
HEAD--帮助我们在提交树上进行移动
可以利用checkout命令, 让HEAD指针指向某个具体的提交记录(比如C3,C4,C5)而不是分支名(main,bugFix)

# git 的相对引用:
^ 向上移动1个提交记录  ^ 还有上一代的意思,一个^就是往上1代
git checkout main^ 切换到main的父节点
~<num> 向上移动多个提交记录
^和~的使用,支持链式操作

 -f:强制让指针指向某一个具体的提交
git branch -f main HEAD~3   
git branch -f bugFix C1    //让bugFix指向C1节点

# 撤销变更
git reset HEAD~1  //对远程分支无效
git revert HEAD  

# cherry-pick可以将提交树上任何的提交记录追加到当前所在位置(HEAD)上
# 适用场景: 提交记录号和哈希值已知
git cherry-pick  <提交号>

# 交互式 rebase
交互式rebase 指的是使用带参数 --interactive的rebase命令 简写为 -i
git rebase -i HEAD~4

# git tag
git tag <标签号> <提交号>
git tag v0 c1

# 描述离自己最近的锚点
git describe <ref>  // ref可以是任何能被git识别成提交记录的引用
//如果你没有指定的话,Git 会以你目前所检出的位置(HEAD)。
它输出的结果是这样的:
<tag>_<numCommits>_g<hash>
tag 表示的是离 ref 最近的标签, numCommits 是表示这个 ref 与 tag 相差有多少个提交记录, hash 表示的是你所给定的 ref 所表示的提交记录哈希值的前几位。
当 ref 提交记录上有某个标签时,则只输出标签名称

# 查找产生Bug的提交记录
git bisect 

# 两个父节点之间的切换
git checkout HEAD^2  //切换到另一个父节点

# git 远程仓库
git clone

# 远程分支
命名规范: <remote name>/<branch name> 一般远程仓库的名称默认为origin

# 从远程仓库下载记录
git fetch
从远程仓库下载本地仓库中缺失的提交记录
更新远程分支指针
不会改变本地仓库的状态,也不会更新main分支

# 合并远程分支
git cherry-pick origin/main
git rebase origin/main
git merge origin/main

# 从远程仓库下载并合并分支
# pull操作时, 提交记录会被先下载到origin/main 分支上,再合并到本地的main分支
git pull
git pull --rebase  //重要,提交代码前一定要先做这一步

# 推送本地记录到远程仓库
# push操作时,我们把工作从main推到远程仓库中的main分支,同时更新远程分支origin/main
git push
git push <remote> <place>  //git push origin main
git push origin <source>:<destination>  //git push origin foo^:main

# 偏离的提交历史
git 会强制你先合并远程最新的代码,再分享你的工作
git pull --rebase  //下载远程代码并合并
git push  //再将自己的代码推送到远程分支

# 如何自定义远程分支
# 方法一
git checkout -b <期望能够跟踪origin/main分支的本地分支> o/main
# 方法二
git branch -u o/main <本地分支名>

# git 远程仓库高级操作

# 推送主分支

# 合并远程仓库

# 远程追踪

# git push 的参数
git push <remote> <place>  //git push origin main
git push origin <source>:<destination>  //git push origin foo^:main

# git fetch 的参数
git fetch <remote> <place> //git fetch origin foo //把远程仓库foo分支下载到本地的origin/foo分支上
git fetch <source>:<destination>  //source指的是远程仓库的位置,destination是要放置提交的本地仓库的位置

#  没有source的source
git push origin :side  //远程仓库和本地仓库中的side分支会被删除
git fetch origin :bugFix  //本地会创建一个新分支bugFix 

# git pull的参数  git pull 实际上就是 fetch + merge 的缩写
git pull origin <source>:<destination>

########################草稿区############################
# 帮助命令
show solution  #查看参考答案

git fakeTeamwork   #模拟团队合作  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值