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 文件,预期的结果是会新增一个删除该文件的提交:

相关推荐
小刘鸭!7 小时前
Flink中并行度和slot的关系——任务和任务槽
大数据·flink
LI JS@你猜啊8 小时前
Elasticsearch 集群
大数据·服务器·elasticsearch
筒栗子8 小时前
复习打卡大数据篇——Hadoop HDFS 03
大数据·hadoop·hdfs
SelectDB10 小时前
Apache Doris 创始人:何为“现代化”的数据仓库?
大数据·数据库·云原生
SelectDB11 小时前
飞轮科技荣获中国电信星海大数据最佳合作伙伴奖!
大数据·数据库·数据分析
小刘鸭!11 小时前
Hbase的特点、特性
大数据·数据库·hbase
神奇侠202411 小时前
解决集群Elasticsearch 未授权访问漏洞
elasticsearch
Elastic 中国社区官方博客12 小时前
如何通过 Kafka 将数据导入 Elasticsearch
大数据·数据库·分布式·elasticsearch·搜索引擎·kafka·全文检索
神奇侠202412 小时前
解决单台Elasticsearch 未授权访问漏洞
elasticsearch
nece00112 小时前
elasticsearch 杂记
大数据·elasticsearch·搜索引擎