本文记录了一些常用 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

    恢复以上文件的修改识别

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

  1. windows下使用TortoiseGit代替Git命令行操作

    windows下使用TortoiseGit代替Git命令行操作 大家在使用svn的时候,都非常喜欢使用小乌龟,也就是TortoiseSVN:那么git也有小乌龟版本,即TortoiseGit. 1.安 ...

  2. 3.Git 命令行操作

    1.Git 命令行操作(本地库操作): 1.1. 创建本地库(本地库初始化): 第一步:首先在D盘建了个名为git空文件夹,命令行中cd到这个文件夹: 第二步:通过git init命令把这个目录变成G ...

  3. git 命令行操作(之前整理在有道的笔记)

    1. 常用命令 切换分支 git checkout [branch_name] 检出分支 git clone [git_URL] 更新分支 git pull origin [branch_name] ...

  4. GIT → 05:Git命令行操作

    5.1 打开命令行窗口 安装Git后,在资源管理器的空白处,单击鼠标右键打开窗口,点击 Git Bash Here ,打开Git命令行窗口,在窗口中可直接使用Linux命令操作: 5.2 初始化Git ...

  5. git 命令行操作

    Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目 这里说一下在命令行对git进行操作 git init [在本地初始化一个git库] //当你的git服务器里面已经有文 ...

  6. git命令行操作

    从本地上传代码到仓库(假设已经建好仓库): 1.初始化: git init 2.将所有文件加入缓存区: git add * 3.提交当前工作空间的修改内容: git commit -m 'commit ...

  7. [Git] 1、常用Git命令行总结(一)

    一.GIT CLONE最常用的有如下几个 1.最简单直接的命令:git clone xxx.git 2.如果想clone到指定目录:git clone xxx.git “指定目录” 3.clone时创 ...

  8. git命令行操作详解

    目录 1.常用操作 1.1 新建代码库 1.2 配置 1.3 remote管理 1.4 添加和撤销操作 1.5 代码提交 1.6 分支操作 1.7 查看信息 1.8 pull操作 1.9 push操作 ...

  9. Git命令行操作(三)

    1. 本地库初始化 进入指定目录,如:D:\gitSpace\OA 右键-->Git Bash Here,执行命令: git init 效果如下: #查看.git目录 ls -la # 进入.g ...

  10. 3. git命令行操作之远程库操作

    3.1 基本操作 注册GitHub账号 在本地创建一个本地库并初始化 登录到gitHub创建一个远程库 注意:windows的凭据管理器中会保存github登录信息.如果要切换登录者,先删除相应凭据 ...

随机推荐

  1. 【JavaScript排序】 sort()方法(解决null、undefined、0之间的排序(混乱)问题)

    JavaScript排序 - sort()方法 --解决null.undefined.0之间的排序(混乱)问题 一.普通的数组排序 ​ JavaScript中用方法sort()为数组排序.sort() ...

  2. Kafka之工作流程分析

    Kafka之工作流程分析 kafka核心组成 一.Kafka生产过程分析 1.1 写入方式 producer采用推(push)模式将消息发布到broker,每条消息都被追加(append)到分区(pa ...

  3. 3.MongoDB系列之查询

    1. find简介 // 查询所有文档 db.users.find({}) // 查询指定条件文档 db.users.find({'name': 'shenjian'}) // 查询指定字段,1查询键 ...

  4. PHP微信支付功能

    百度网盘:http://pan.baidu.com/s/1sl5GeVr  l5ud 先下载一份sdk ,引入到自己的项目中,我用的是TP5,配置好namespace 然后在项目中引入: 之后,在去配 ...

  5. 齐博x1标签实例:标签设置取组图不存在就取内容中的图片

    对于CMS或者是其它,使用下面的代码 <div class="morepic"> {volist name=":getArray($pics=$rs.picu ...

  6. MinGW配置C语言编译器gcc和g++

    首先,在 https://sourceforge.net/projects/mingw/files/latest/download 下载安装MinGW,如下图所示: 点Installation-> ...

  7. AI之强化学习、无监督学习、半监督学习和对抗学习

    1.强化学习 @ 目录 1.强化学习 1.1 强化学习原理 1.2 强化学习与监督学习 2.无监督学习 3.半监督学习 4.对抗学习 强化学习(英语:Reinforcement Learning,简称 ...

  8. NLP之基于TextCNN的文本情感分类

    TextCNN @ 目录 TextCNN 1.理论 1.1 基础概念 最大汇聚(池化)层: 1.2 textCNN模型结构 2.实验 2.1 实验步骤 2.2 算法模型 1.理论 1.1 基础概念 在 ...

  9. Java反应式编程(1)

    您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来- 前面把Java函数式编程的由来和最主要的核心知识点讲完了.包括比较难懂的Lambda表达式是怎么演变而来的也全部都撸了一遍.Lambda表达式这 ...

  10. JAVA系列之类加载机制详解

    类的加载机制 ? 双亲委派机制 ? 什么是类加载器 ? 自定义类加载器有哪些应用场景 ? 通常,在关于Java的类加载部分会遇到以上疑问,本文将对类加载重要部分做详细介绍,包括重要的基础概念和应用场景 ...