本文记录了一些常用 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/p,edit/e,drop/d,squash/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. Java斗地主(集合综合练习)

    ​ 学完了集合后我们可以开始做一个简易版的 " 斗地主 " 了,但是呢咱们这个斗地主只能实现制造牌,洗牌.发牌.看牌这几个简单的功能,并不是我们玩的 " 真人版斗地主 & ...

  2. windows设置开机启动程序

    1.新建文件,填写路径 @echo off cd F:\程序路径\ //后面填写3D所在的路径 F: //程序的个盘符 run.bat 把这个文件填写完成后,改个名字,后缀改为bat,并把这个文件放在 ...

  3. C#-等待异步函数执行结果-将调用异步方法的函数变成非异步执行

    先来简单了解一下async.await 使用async await 的前提条件:需要C# 5.0以上版本 .NET Framework 4.5以上 Visual Studio 2012以上. asyn ...

  4. HTML5和CSS3新特性

    1.HTML5新标签和属性 1.1 兼容性前缀与语义化 兼容低版本的写法.比较新的浏览器,可以直接写.兼容性前缀,是每个浏览器私有的. 内核 兼容性前缀 浏览器 Gecko -moz- Firefox ...

  5. 如何在CentOS7上搭建自己的GitLab仓库

    序言 各位好啊,我是会编程的蜗牛,作为java开发者,在团队开发中,一般都是需要使用git及git仓库来管理我们的代码的,这非常方便.我以前在小公司的时候,基本都是一个人开发一个项目,所以也没有怎么接 ...

  6. 【深入浅出 Yarn 架构与实现】2-2 Yarn 基础库 - 底层通信库 RPC

    RPC(Remote Procedure Call) 是 Hadoop 服务通信的关键库,支撑上层分布式环境下复杂的进程间(Inter-Process Communication, IPC)通信逻辑, ...

  7. WCF实现大文件上传

    一.文件服务接口 1.文件上传 2.文件传输(上传按钮) 3.文件传输停止 服务地址: 在客端添加服务器引用,从而实现客户端调用服务器的功能. 二.契约 服务契约[ServiceContract]:定 ...

  8. Kubernetes核心技术-Controller

    Kubernetes核心技术-Controller 内容 什么是Controller Pod和Controller的关系 Deployment控制器应用场景Deployment控制器应用 yaml文件 ...

  9. 2022春每日一题:Day 23

    题目:Piotr's Ants 蚂蚁转头走,其实可以看做他们交换灵魂后接着往前走,同样发现,既然他们的速度相同,那么在数轴上相对位置不会改变(碰面会改变方向),那就好办了. 先把初始状态排序,id都记 ...

  10. 12 张图看懂 CPU 缓存一致性与 MESI 协议,真的一致吗?

    本文已收录到  GitHub · AndroidFamily,有 Android 进阶知识体系,欢迎 Star.技术和职场问题,请关注公众号 [彭旭锐] 进 Android 面试交流群. 前言 大家好 ...