git常用命令

  • **工作区:**就是你在电脑里能看到的目录。

  • 暂存区: 英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

  • 版本库: 工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库

    git config --list # 查看当前所有配置信息
    git config -global user.name "[name]" # 配置用户名
    git config -globa user.email "[email]" # 配置用户邮箱

    git init [repository name] # 创建一个新的 git 仓库

    git clone [url] # 克隆远程仓库

    git status # 查看当前缓存文件

    git add [fileName] # 提交指定文件到暂存区域
    git add * # 将所有修改文件提交到暂存区域

    git commit -m 'commit message' # 提交
    git commit -a # 提交所有使用 git add 提交的文件

    git diff # 查看所有暂存区域文件的对比
    git diff -staged # 查看最后一次版本的暂存区域文件对比
    git diff [first branch] [second branch] # 查看两个分支的不同

    git reset [file] # 取消指定暂存文件, 但保留文件内容
    git reset [commit version] # 撤销提交后的指定提交记录 回退版本
    git reset --hard [commit] # 丢弃所有历史记录, 回退至指定版本

    git rm [file] # 从工作目录中删除该文件的 git 记录

    git log # 查看提交本地记录
    git log -follow[file] # 列出文件的历史记录, 包括重命名

    git show # 显示指定提交的元数据和内容更改
    git reflog # 查看命令历史 配合 git rest 使用
    git tag [version ID] # 指定的提交提供标记, 也就是打版本

    git push # 提交本地到远程
    git push [version name] origin master # 推送指定版本到master
    git push [variable name] branch # 推送本地分支到远程
    git push -all [variable name] # 推送所有本地分支到远程

    git pull # 拉取远程分支
    git pull origin [branch name] # 将远程指定分支的代码更新至本地当前分支

    git merge branch # 将branch 分支合并到当前分支

    git branch # 列出所有本地分支
    git branch name # 创建一个新的本地分支
    git branch -d name # 删除本地分支
    git branch -D [branch name] # 强制删除本地分支
    git branch -a # 查看远程分支
    git branch | xargs git branch -d # 删除除当前以外的其他分支
    git push origin :<branch name> # 删除远程分支 如 git push origin :dev
    git checkout [branch name] # 切换分支
    git checkout -b [branch name] # 创建一个本地分支并切换值新分支

    git stash # 临时存储所有已修改的跟踪文件
    git stash pop # 恢复最近隐藏的文件
    git stash list # 列出所有存储的修改
    git stash drop # 丢弃最近隐藏的变更集

    将本地分支推送到远程服务

    git remote add [variable name [Remote server link ]

git revert

git revert 命令用于回滚某一个(或多个)提交引入的更改。

其他的「撤销」命令如 git checkout 和 git reset,会将 HEAD 或分支引用重新指向到指定的提交,git revert 命令也可以接受一个指定的提交,但并不会将任何引用移动到这个提交上。revert 操作会接收指定的提交,反转该提交引入的更改,并创建一个新的「回滚提交」记录反转更改,然后更新分支引用,使其指向该提交。

相比 reset ,revert 会在提交历史中增加一个新的提交,而不会对之前的提交进行任何更改。 默认情况下 revert 会自动执行如下步骤:

  • 将反转指定提交的更改合并到工作区
  • 将更改添加到暂存区
  • 创建新的提交

因此它要求我们提供一个干净的暂存区(即和 HEAD 提交状态一致),且要求工作区的本地更改不会被合并操作覆盖,否则回滚会失败。我们可以添加 --no-commit 命令选项来进入交互模式手动执行「创建新的提交」,此时 revert 操作会将反转的更改应用到工作区和暂存区等待提交,且不要求暂存区与 HEAD 一致。

我们通过示例来演示这一过程,现在我们想回滚 b15cc74 这个提交,这个提交中加入了 .gitignore 文件,预期的结果是会新增一个删除该文件的提交:

相关推荐
The Open Group2 小时前
英特尔公司Darren Pulsipher 博士:以架构之力推动政府数字化转型
大数据·人工智能·架构
喂完待续2 小时前
【Tech Arch】Spark为何成为大数据引擎之王
大数据·hadoop·python·数据分析·spark·apache·mapreduce
三掌柜6662 小时前
NVIDIA 技术沙龙探秘:聚焦 Physical AI 专场前沿技术
大数据·人工智能
源码宝3 小时前
【智慧工地源码】智慧工地云平台系统,涵盖安全、质量、环境、人员和设备五大管理模块,实现实时监控、智能预警和数据分析。
java·大数据·spring cloud·数据分析·源码·智慧工地·云平台
百思可瑞教育4 小时前
Git 对象存储:理解底层原理,实现高效排错与存储优化
大数据·git·elasticsearch·搜索引擎
数据超市5 小时前
香港数据合集:建筑物、手机基站、POI、职住数据、用地类型
大数据·人工智能·智能手机·数据挖掘·数据分析
SelectDB6 小时前
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
大数据·数据分析·开源
BYSJMG8 小时前
计算机大数据毕业设计推荐:基于Hadoop+Spark的食物口味差异分析可视化系统【源码+文档+调试】
大数据·hadoop·分布式·python·spark·django·课程设计
萤丰信息9 小时前
技术赋能安全:智慧工地构建城市建设新防线
java·大数据·开发语言·人工智能·智慧城市·智慧工地
Viking_bird10 小时前
Apache Spark 3.2.0 开发测试环境部署指南
大数据·分布式·ajax·spark·apache