当前位置: 首页 > news >正文

git常用命令及概念对比

查看日志

git config --list 查看git的配置

git status 查看暂存区和工作区的变化内容(查看工作区和暂存区有哪些修改)

git log 查看当前分支的commit 记录

git log -p commitID详细查看commitID的具体内容

git log -L :funcName:fileName 查看fileName文件中funcName函数的修改历史

git log --pretty=oneline 简易的查看commit 记录(直接用git log --oneline更方便一些)

git log --graph --pretty=oneline --abbrev-commit 查看分支合并图

git diff file.txt 比较工作区和暂存区内file.txt 的区别

git diff HEAD -- file.txt 比较查看版本库和工作区中的file.txt的区别

git diff --cached file.txt 比较暂存区和本地仓库

git reflog 用在回退时的场景, 当发生版本回退时,git log只能看到HEAD指针的祖先。而git reflog可以看到左右commit 记录

git show commitID 查看commitID这次提交的详细内容

本地仓库

git add file.txt 添加文件file.txt到暂存区 (也可以用git add . 将当前文件夹中所有修改都添加到暂存区)

git commit -m "xxx" 提交暂存区的内容到本地仓库 ,并添加评论"xxx", m是message的缩写

git commit --amend 上一次commit 被reviewer拒了后,做出修改后提交,要加--amend 参数

拉取远程仓库内容

git pull 用远程分支更新本地分支内容(类似于SVN中的update操作)

git pull origin master:dev 将远程库origin中的master 分支内容,更新到本地的dev分支上(如果是使用git pull origin master, 是将远程库origin中的master 分支内容,更新到当前分支上)

git clone与git pull的区别:git clone是复制一个远程库到本地,生成一个本地仓库。git pull是拉取远程库中的分支,合并到本地库中,git pull = git fetch +git merge

推送

git push -u origin master 将本地的当前分支master推送到远程(将本地库的内容推送到远程)(第一次运行,由于远程库是空的,要加-u参数,后续不用加该参数)

git push origin master 将本地的master分支推送到origin主机的master分支。如果master不存在,则会被新建。

git push origin v1.0 将v1.0这个标签推送到远程

git push origin --tags 将本地的标签一次性全部推送到远程

git push origin :ref/tags/v0.9 删除远程上的标签v0.9

git clone git@github.com:someoneAccount/repoName 克隆远程库repoName到本地

分支

git branch 查看本地所有分支

git branch -a 查看远程和本地的所有分支

git branch -d dev 删除dev分支

git branch -D 分支名 用-D参数来删除一个没有被合并过的分支

git checkout -- file.txt 用暂存区内的file.txt替换到工作区内的file.txt(如果暂存区是空的,就用版本库中file.txt替换掉工作区的file.txt)

git checkout xxx 切换到xxx分支

git checkout -b dev 创建一个新分支dev,并切换到该分支(该命令相当于两个命令:git branch dev和git checkout dev)

存贮

git stash 将当前分支的工作现场储藏起来,等以后回复现场后继续工作

git stash list查看当前分支保存起来的工作现场

git stash pop 恢复工作现场(相当于两个命令:git stash apply 和git stash drop)

git stash apply stash@{0} 恢复0号工作现场

git clean 清除untracked files

标签

git tag v1.0 给当前分支打上标签v1.0

git tag 查看所有标签

git tag v1.0 commitId 给commitId这个提交打上标签v1.0

git show v1.0 查看v1.0这个标签内容

git tag -d v0.1 删除v0.1这个本地的标签

合并

git rebase master

将当前分支的修改,在master分支上重新实现一下(rebase叫做变基, 就是把当前分子的根基改变一下)

git rebase master

git merge master

将master分支合并到当前分支,合并的步骤是将master 的多次提交合并成一次新的提交,然后再将这个新的提交实现在当前分支上。

git merge master

git merge dev 将dev分支合并到当前分支

git merge --no-ff -m "comments xxxx" dev 以no-ff的形式合并dev分支到当前分支

759365b8544a497c8f424c2dee85e29d.png

复制一个特定的提交到当前分支

用途:修复bug用:在某一个分支上已经修复了bug,将该提交内容commitId应用到当前的分支

git cherry-pick commitId

撤销操作

git restore

git restore --staged file 撤销git add操作,就是把文件从缓存区移动到工作区.(针对暂存区的操作)

git rm

git rm file.txt 然后git commit 从版本库中删除file.txt(本地工作区内删除,直接用rm file.txt即可)

git reset

回滚到对应的commit-id,相当于是删除了commit-id以后的所有的提交,并且不会产生新的commit-id记录,如果要推送到远程服务器的话,需要强制推送-f

git reset HEAD file.txt 清空暂存区(适用情况:写了一些胡话,已经提交到暂存区,要撤销), 其实是拉去本地仓库中最近一次提交(HEAD指针指向)到暂存区,工作区内容没有改变。

git reset --hard HEAD^ 回退到上一个版本(撤销git commit,同时也撤销git add和 工作区内容)

git reset --soft HEAD^ 撤销git commit,但不撤销git add (工作区内容依旧保持)

git revert

是反做撤销其中的commit-id,然后重新生成一个commit-id。本身不会对其他的提交commit-id产生影响,如果要推送到远程服务器的话,就是普通的操作git push就好了

git revert commit_id

更换仓库

git remote -v 查看远程库信息(也可以用git remote 查看简易的远程库信息)

git remote rm origin 删除远程库

git remote add origin git@github.com:yourAccount/repoName 将远程仓库repoName与本地仓库相关联,并将远程仓库命名为origin

 

 

 

http://www.lryc.cn/news/275022.html

相关文章:

  • 57、python 环境搭建[for 计算机视觉从入门到调优项目]
  • K8S-应用访问
  • 商智C店H5性能优化实战
  • Unity 使用 Plastic 同步后,正常工程出现错误
  • 详细设计文档该怎么写
  • 集团企业OA办公协同平台建设方案
  • Spring Security之认证
  • 智能语音机器人NXCallbot
  • Vue 3中toRaw和markRaw的使用
  • 移动神器RAX3000M路由器不刷固件变身家庭云之三:外网访问家庭云
  • 基于多反应堆的高并发服务器【C/C++/Reactor】(中)线程池的启动和从线程池中取出一个反应堆实例
  • go语言gin框架的基本使用
  • TypeScript 从入门到进阶之基础篇(六) 类型(断言 、推论、别名)| 联合类型 | 交叉类型
  • Linux操作系统基础(14):文件管理-文件属性命令
  • metaSPAdes,megahit,IDBA-UB:宏基因组装软件安装与使用
  • Apache、MySQL、PHP编译安装LAMP环境
  • L1-087:机工士姆斯塔迪奥
  • 如何做一个炫酷的Github个人简介(3DContribution)
  • 基于单片机的护理床控制器设计
  • 《3D数学基础-图形和游戏开发》阅读笔记 | 3D数学基础 (学习中 1.6更新)
  • 解锁测试性能瓶颈:深度探讨JMeter分布式性能测试!
  • SiC电机控制器(逆变器)发展概况及技术方向
  • useContext
  • Java数据结构:1. 数据结构前置知识
  • Vue中使用Element UI的Table组件实现嵌套表格(最简单示例)
  • 如何使用RESTful API构建 web 应用程序
  • 开启Android学习之旅-4-Android集成FontAwesome
  • Qt——TCP UDP网络编程
  • 有什么安全处理方案可以有效防护恶意爬虫
  • Flutter3.X基础入门教程(2024完整版)