Git基本使用命令

Git配置

Git最小配置

  • 配置全局账户,该账户对所有Git仓库都有效
git config --global user.name '账户名称'
git config --global user.email 'Email地址'
  • 配置局部账户,该账户对当前Git仓库有效
git config --local user.name '账户名称'
git config --local user.email 'Email地址'

查看相关配置

  • 查看global类型的配置情况
git config --global --list
  • 查看某个仓库下的配置情况
git config --local --list

本地基本操作

基本操作

  • 查看变更情况
git status
  • 查看当前工作在那个分支
git branch -v
  • 切换到指定分支
git checkout 指定分支名称
  • 把当前 目录及其子目录下所有变更都加入到暂存区
git add .
  • 把仓库内 所有变更都加入到暂存区
git add -A
  • 把指定文件添加到暂存区
git add 文件1 文件2 ...

  • 创建commit,提交当前数据
git commit

比较差异

  • 比较某文件 工作区暂存区的差异
git diff 某文件
  • 比较某文件暂存区和HEAD的差异
git diff --cache 某文件
  • 比较工作区和暂存区的所有差异
git diff
  • 比较暂存区和HEAD的所有差异
git diff --cache

暂存区与工作区之间回滚

  • 把工作区 指定文件恢复成和 *暂存区一样
git checkout 文件1 文件2 ...

  • 把暂存区 指定文件恢复和 *HEAD一样
git reset 文件1 文件2 ...

  • 把暂存区和工作区 所有文件恢复成和 *HEAD一样
git reset --hard
  • difftool比较任意两个 commit的差异
git difftool commit1 commit2

其他

  • 查看哪些文件没有被Git管控
git ls-files --others

临时任务处理

  • 把未处理完的变更先保存到 stash
git stash
  • 临时任务处理完后, 继续之前的工作
git stash pop           # 把之前任务弹出
或者
git stash apply         # 从栈顶把任务取出
  • 查看所有的 *stash
git stash list
  • 取回某次 stash的变更
git stash pop stash @{数字}

修改分支历史

  • 修改 最后一次commit
git add
git commit --amend
  • 修改 中间的commit
git rebase -i (commit的id)
git add
git rebase --contiue

查看变更日志

  • 当前分支各个commit用 *一行显示
git log --online
  • 显示最近的 n个commit
git log -n
  • 用图示显示 *所有分支历史
git log --online --graph --all
  • 查看涉及到 某文件变更的所有commit
git log 某文件
  • 某文件各行最后修改 *对应的commit以及作者
git blame 某文件

分支和标签

创建新分支

  • 基于 当前分支创建新分支
git branch 新分支
  • 基于 指定分支创建新分支
git branch 新分支 已有分支
  • 基于 某个commit创建分支
git branch 新分支 某个commit的id
  • 创建分支并且切换到该分支
git chechout -b 新分支

列出分支

  • 列出 本地分支
git branch -v
  • 列出 本地和远端分支
git branch -av
  • 列出 *远端所有分支
git branch -rv
  • 列出 名称符号某样式的远端分支
git branch -rv -l '某样式'

删除分支

  • 安全删除本地某分支
git branch -d 要删除的分支
  • 强行删除本地分支
git branch -D 要删除的分支
  • 删除已合并到master分支的所有本地分支
git branch --merged master | grep -v '^\*\ | master ' | xargs -n 1 git branch -d
  • 删除远端origin已不存在的所有本地分支
git remote prune origin

打标签

  • commit打上标签
git tag 标签名 (commit的id)

两分支之间的集合

  • A分支合入到当前分支,且为merge创建commit
git merge A分支
  • A分支合入到B分支,且为Merge创建commit
git merge A分支 B分支
  • 当前分支基于B分支做rebase,以便把B分支合入到当前分支
git rebase B分支
  • A分支基于B分支做rebase,以便把B分支合入到A分支
git rebase B分支 A分支
  • 用 *mergetool解决冲突
git mergetool

远端交互

  • 列出 *所有 remote
git remote -v
  • *增加 remote
git remote add url地址
  • *删除 remote
git remote remove (remote的名称)
  • *改变 remote的 name
git remote rename 旧名称 新名称
  • 把远端所有分支和标签的变更都 *拉到本地
git fetch remote
  • 把远端分支的变更 拉到本地,且 merge到本地分支
git pull remote名称 分支名
  • 把 *本地分支push到远端
git push remote名称 分支名
  • *删除远端分支
git push remote --delete 远端分支名
或者
git push remote:远端分支名
  • 向 *远端提交指定标签
git push remote 标签名
  • 向 *远端提交所有标签
git push remote --tags

Original: https://www.cnblogs.com/in-dark/p/16167689.html
Author: 下月初相见
Title: Git基本使用命令

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/606592/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • MIT6.828——Lab2内存管理准备知识

    保护模式内存管理机制 MIT6.828——Lab1 PartA MIT6.828——Lab1 PartB 分段机制的问题 ​ 分段的主要问题,出现在内存不足或者内存碎片过多的情况下…

    Linux 2023年5月27日
    0120
  • Power Outage

    由于Covid-19的原因一直是work from home, 在几天前家里的电表有问题需要人来维修,在这期间会停电大概半小时操作,虽然是wfh,但是还是要保障工作的正常进行,保守…

    Linux 2023年6月7日
    0110
  • 很有创意的AkShell:用JS开发web,轻松发布

    今天看了infoq对作者的采访,感觉很有意思。 我去他们的网站看了下,作者是俄罗斯人,他的目标是最大可能地简化web开发。只需要用浏览器就可以开发 ,点两下鼠标就发布了。 他的哲学…

    Linux 2023年5月28日
    098
  • 07-MyBatis中的动态标签

    MyBatis中的动态标签 1、if标签 if标签是为了判断传入的值是否符合某种条件,比如是否不为空 2、where标签 where标签可以用来做动态拼接查询条件,当和 if标签配…

    Linux 2023年6月7日
    099
  • [转帖]shell学习之shell基础知识了解

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年5月28日
    0101
  • 什么?Android上面跑Linux?

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 前言 众所周知,现在程序员因为工作、个人兴趣等对各种系统的需求越来越大,部分人电脑做的还是双系统。其中,比较常见的有各种模拟器、…

    Linux 2023年5月27日
    0118
  • Centos7.9编译OpenSSH的rpm安装包并升级OpenSSH

    本文介绍如何通过openssh-9.0p1.tar.gz制作openssh的rpm安装包,并升级openssh到9.0。 下载openssh-9.0p1.tar.gz 编译成rpm…

    Linux 2023年6月7日
    0106
  • Snap Build Your Own Blocks输入中文解决办法

    Snap Build Your Own Blocks 输入中文解决办法 Snap! (formerly BYOB) is a visual, drag-and-drop progr…

    Linux 2023年6月6日
    092
  • algorithm 头文件参考

    定义执行算法的 C++ 标准库容器模板函数。 该 <algorithm></algorithm> 库还使用该 #include <initialize…

    Linux 2023年6月7日
    0113
  • 【数学建模相关】matplotlib画多个子图(散点图为例 左右对照画图)

    @ 例题 例图 代码展示 例题 乙醇偶合制备 C4 烯烃 C4 烯烃广泛应用于化工产品及医药的生产,乙醇是生产制备 C4 烯烃的原料。 在制备过程中,催化剂组合(即:Co 负载量、…

    Linux 2023年6月8日
    0158
  • 【Leetcode】63. 不同路径 II

    一个机器人位于一个 m x n网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在…

    Linux 2023年6月6日
    091
  • redis持久化存储

    redis持久化存储 redis多被用于缓存和消息中间件,当被用作缓存时,数据的读写都是在内存中进行的,而内存一旦在主机断电或者主机重启时里面的数据将被清空,为保证数据不被丢失,r…

    Linux 2023年6月7日
    0107
  • podman对容器映像签名和分发

    熟悉podman 如何使用 Podman 对容器映像进行签名和分发 熟悉podman 此示例容器将运行一个非常基本的 httpd 服务器,该服务器仅为其索引页提供服务 [root@…

    Linux 2023年6月7日
    095
  • 在Linux命令行内的大小写转换

    在编辑文本时大小写常常是需要注意的地方,大小写的转换是很枯燥而繁琐的工作,所幸,Linux 提供了很多能让这份工作变得容易的命令。接下来让我们看看都有哪些完成大小写转换的命令。 t…

    Linux 2023年6月14日
    0116
  • 来的随笔

    感谢各位 posted @2022-01-07 12:08 三途河畔人 阅读(71 ) 评论() 编辑 Original: https://www.cnblogs.com/sthp…

    Linux 2023年6月7日
    0107
  • PHP 获取数组长度

    count()函数,默认是获取一维数组,参数为:COUNT_NORMAL,添加第二个参数:COUNT_RECURSIVE,则可以获取多维关联数组的长度(意思为递归获取),例如:co…

    Linux 2023年6月7日
    0120
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球