常用 Git 命令行操作

2023-10-26

本文记录了一些常用 Git 命令行操作的具体使用方式

git clone

  • git clone REPOSITORY_URL
    拉取仓库,并使用仓库名作为本地文件名

  • git clone REPOSITORY_URL FOLDER
    拉取仓库,并使用 FOLDER 作为本地文件名

git fetch

  • git fetch origin
    更新所有远程分支

  • git fetch origin BRACH
    更新指定远程分支

git pull

  • git pull origin
    相当于 fetch + merge 对应的上游分支

  • git pull origin BRACH
    拉取指定分支到当前分支

  • git pull origin --rebase master
    让本地分支重新基于远端的 master 分支

git push

  • git push origin
    把分支推到远端对应的上游分支

  • git push origin BRANCH
    把分支推到远端对应的分支

  • git push --set-upstream origin BRANCH
    把分支推到远端对应的分支,并将其设为上游分支(一般第一次提交自己的开发分支需要用到)

  • git push -f origin
    把分支强推到远端对应的上游分支(会覆盖远端分支,需要慎用)

  • git push origin -d BRANCH
    删除远程分支

git branch

  • git branch
    列出本地所有分支

  • git branch -a
    列出本地和远程分支

  • git branch -m NEW_BRANCH
    更新当前分支名

  • git branch -d BRANCH
    删除已合并的分支

  • git branch -D BRANCH
    强制删除分支(即使未合并)

git checkout

  • git checkout BRANCH
    切到对应分支

  • git checkout -b NEW_BRANCH
    创建新分支

  • git checkout -b NEW_BRANCH BRANCH
    基于 BRANCH 创建新分支

  • git checkout SHA-1
    切换到某个提交,也可以用 HEAD~N(N 为 1, 2, 3…)切到上 N 个提交

  • git checkout SHA-1 /PATH/TO/FILE
    把文件还原到相应的提交版本

  • git checkout --theirs /PATH/TO/FILE
    有冲突时使用对方的文件版本

  • git checkout --ours /PATH/TO/FILE
    有冲突时使用自己的文件版本

  • git checkout -
    切换到之前的分支,适合在两个分支频繁切换时使用

git add

  • git add .
    把所有增加/修改/删除的文件标识为要提交

  • git add /PATH/TO/FILE
    只把单一文件标识为要提交,当有其他不需要提交的文件被修改时可使用

git commit

  • git commit
    git add 标识的文件进行提交

  • git commit -a
    把修改/删除的文件进行提交(如果有新增的文件,需要使用 git add 添加)

  • git commit -am "MESSAGE"
    把修改/删除的文件进行提交并指定注释(适用于临时或简单注释内容)

  • git commit --amend
    更新上一次提交,可以加上 -a 或在之前运行 git add 追加更新文件

  • git commit --amend --reset-author
    默认的更新提交是不改变作者的,如果需要改变可以明确配置

git cherry-pick

  • git cherry-pick SHA-1
    把某个提交应用到当前分支

git status

  • git status
    查看目前状态

git diff

  • git diff
    当前所有修改到的,没被标识为要提交的文件的更新内容

  • git diff --cache
    当前所有修改到的,并被标识为要提交的文件的更新内容

  • git diff /PATH/TO/FILE
    指定文件的更新内容,同样可以用 --cache 区分

git log

  • git log
    详细显示所有记录

  • git log -n 10
    显示最近 10 条记录

  • git log --oneline
    简要显示所有记录

  • git log --oneline master ^BRANCH | wc -l
    可以计算 BRANCH 和 master 分支相差多少个提交

git stash

  • git stash
    暂存修改/删除,或已标识为要 commit 的新增的文件

  • git stash -u
    暂存修改/删除/新增的文件,即新增文件可以不用 git add

  • git stash pop
    把暂存的文件重新放出来

git revert

  • git revert SHA-1
    通过形成一个新提交取消某个提交

  • git revert SHA-1 -m 1
    如果是合并节点,需要指定要取消提交对应的父节点
    例如合并是把 BRANCH_2 合并到 BRANCH_1,那么要在 BRANCH_1 取消这次合并,就应该指定 m 为 1(大多数情况都是这样)

git reset

  • git reset
    取消对要 commit 的文件的标识(相当于 git add 的撤销)

  • git reset --hard
    取消修改/删除或已标识为要 commit 的新增的文件的更新

  • git reset SHA-1
    取消从 SHA-1 之后的所有提交,但是保留提交文件的更新
    如果只想取消上一次提交,SHA-1 可以设为 HEAD^

  • git reset --hard SHA-1
    取消从 SHA-1 之后的所有提交,而且不保留提交文件的更新

git rebase

  • git rebase BRANCH
    让当前分支重新基于 BRANCH

  • git rebase -i SHA-1
    更新 SHA-1 以后的提交,可以 pick/pedit/edrop/dsquash/s 相应提交
    如果第一个提交使用 p,后面的提交使用 s,可以把多个提交合并成一个提交

git merge

  • git merge BRANCH
    把 BRANCH 合并到当前分支,尽量不形成合并节点

  • git merge --no-ff BRANCH
    把 BRANCH 合并到当前分支,并确保形成合并节点

  • git merge --squash BRANCH
    把 BRANCH 和当前分支的变更作为标识为要提交的内容,需要运行 git commit 完成只有一个提交的合并

git update-index

  • git update-index --assume-unchanged /PATH/TO/FILE
    当某个文件被临时修改,但不想提交,也不适合放到 .gitignore,可以用此命令让 git 不将其识别为已修改
    如果这个文件是新增的,就不能用这个命令了,不过可以把文件路径加到 .git/info/exclude

  • git update-index --no-assume-unchanged /PATH/TO/FILE
    恢复以上文件的修改识别

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

常用 Git 命令行操作 的相关文章

随机推荐

  • python3 [爬虫入门实战]爬虫之scrapy爬取中国医学人才网

    自己第一次试着用scrapy进行爬取网页 总共爬下9240条数据 也就两分钟不到 400多页吧 用的比较简单 但是爬取成功后感觉成就感满满的 来张爬取结果图 爬取字段 hospitalName hospitalDesc hospitalSi
  • 【满分】【华为OD机试真题2023B卷 JS】乱序整数序列两数之和绝对值最小

    华为OD2023 B卷 机试题库全覆盖 刷题指南点这里 乱序整数序列两数之和绝对值最小 知识点排序数组 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 给定一个随机的整数 可能存在正整数和负整数 数组 nums 请你在该数组
  • X11协议基础与实践

    X11协议基础与实践 概念 X11 X Window System 是一种位图显示的视窗系统 X表示X协议 11是协议版本号 X 协议主要由 X server 和 X client 组成 l X server 管理主机上与显示相关的硬件设置
  • 对角线遍历

    param number matrix return number var findDiagonalOrder function matrix if matrix null matrix length 0 return let m matr
  • “40道高频区块链面试题”——我的一些看法

    最近看到了一篇文章如下 超强攻略 40道高频区块链面试题大放送 年底跳槽看过来 地址我也贴出来吧 https mp weixin qq com s 3Fa2XG4R11QDfMSAaBCngw 哦 CSDN的地址也出来了 https blo
  • vscode好用的前端插件和快捷键

    用到好用的vscode插件 总结一下 文章目录 一 常用主题 1 Material Theme主题 2 Community Material Theme主题 3 vscode icons 二 基础插件 1 Code Spell checke
  • java生成二维码图片(有logo),并在图片下方附文字

    logo配置类 Created by Amber Wang on 2017 11 27 17 25 import java awt public class LogoConfig logo默认边框颜色 public static final
  • 【数据结构】 实现 堆 结构 ---超细致解析

    目录 二叉树的性质 二叉树的存储结构 顺序存储 链式存储 堆的概念和性质 堆的实现 堆的初始化 堆的插入 向上调整函数 堆的删除 向下调整函数 向上建堆 向下建堆 TopK问题 二叉树的性质 在我们实现堆之前我们要知道堆的实现是依靠的是二叉
  • C# Thread启动线程时传递参数

    目录 1 不带参数 使用ThreadStart 2 带一个参数 使用ParameterizedThreadStart 3 带多个参数 1 不带参数 使用ThreadStart private void funcName public voi
  • Java反射学习记录

    一 反射概述 反射允许程序在运行中获取类的内部信息 例如构造器 成员变量 成员方法等 类加载之后 在堆中生成一个Class类的对象 一个类只有一个Class对象 这个对象包含类的完整结构信息 二 入门案例 通过配置文件中的内容生成指定类的对
  • 创建完整团队的艺术:敏捷如何改变我们与客户的工作方式

    来源 Ackarlix博客 http www ackarlix com 十年前 敏捷宣言 的作者们希望我们重新思考 我们作为程序员与客户协作的方式 我和我的博士学位顾问Robert Biddle以及James Noble都深受启发 充满希望
  • python --- multiprocessing实现多进程

    文章目录 进程理论知识 multiprocessing模块实现多进程 进程池 进程理论知识 进程就是正在运行的程序 是计算机进行资源分配的最小单位 各个进程都有独立的数据 相互隔离 Linux里进程的状态 R 运行状态runable S 中
  • 各种网络协议的类型、优缺点、作用

    一 网络协议的定义 网络协议是一种特殊的软件 是计算机网络实现其功能的基本机制 网络协议的本质是规则 即各种硬件和软件必须遵循的共同规则 网络协议并不是一套单独的软件 他融合于其他所有软件系统中 协议在网络中无所 不在 二 常用的网络协议
  • 24

    以下内容出自 MySQL 实战 45 讲 https time geekbang org column article 76446 24 MySQL是怎么保证主备一致的 MySQL 主备的基本原理 如图所示就是基本的主备切换流程 M S结构
  • socket可读,可写的条件

    socket可读可写条件 经常做为面试题被问 因为它考察被面试者对网络编程的基础了解的是不是够深入 要了解socket可读可写条件 我们先了解几个概念 1 接收缓存区低水位标记 用于读 和发送缓存区低水位标记 用于写 每个套接字有一个接收低
  • Oracle数据库运维、备份常用指令

    Oracle数据库运维 备份常用指令 1 Oracle数据泵备份导出 1 1 准备工作 在linux系统下创建导出结果存放的文件夹 切记要切换到oracle用户创建 否则会出现权限问题 su oracle mkdir home oracle
  • keepalived高可用服务的VIP地址无法访问

    环境 keepalived nginx实现高可用 VIP地址可以正常生成 也可正常漂移 可以实现故障切换 VIP地址只能在本地服务器ping通 其他内网服务器上无法ping通VIP地址 防火墙和selinux都已关闭 原因一 服务器启动了i
  • day37 445 数字反转 (字符串处理、模拟)

    445 数字反转 给定一个整数 请将该数各个位上数字反转得到一个新数 新数也应满足整数的常见形式 即除非给定的原数为零 否则反转后得到的新数的最高位数字不应为零 输入格式 输入共1行 1个整数N 输出格式 输出共1行 1个整数表示反转后的新
  • 集群基础7——keepalived脑裂

    文章目录 一 脑裂概念 二 脑裂产生原因 三 解决方案 四 脑裂监控 一 脑裂概念 在高可用 HA 系统中 当联系2个节点的 心跳线 断开时 本来为一整体 动作协调的HA系统 就分裂成为2个独立的个体 由于相互失去了联系 都以为是对方出了故
  • 常用 Git 命令行操作

    本文记录了一些常用 Git 命令行操作的具体使用方式 git clone git clone REPOSITORY URL 拉取仓库 并使用仓库名作为本地文件名 git clone REPOSITORY URL FOLDER 拉取仓库 并使