本文记录了一些常用 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. POJ2763 Housewife Wind (树链剖分)

    差不多是模板题,不过要注意将边权转化为点权,将边的权值赋给它所连的深度较大的点. 这样操作过后,注意查询ask()的代码有所改变(见代码注释) 1 #include<cstdio> 2 # ...

  2. 谣言检测(DUCK)《DUCK: Rumour Detection on Social Media by Modelling User and Comment Propagation Networks》

    论文信息 论文标题:DUCK: Rumour Detection on Social Media by Modelling User and Comment Propagation Networks论 ...

  3. qiankun+vue,为什么我的子应用的子路由老是跳404?这么解决

    主要解决子应用内部跳转路由时,跳到404页的问题 你能搜这个,我姑且认为你基本配置已经好了,而且主跳子的一级路由是正常的,请往下看 忘说了,我的主应用和子应用都是Vue 主应用跳子应用都正常,为什么子 ...

  4. Linux、Windows下Redis的安装即Redis的基本使用详解

    前言 什么是Redis Redis是一个基于内存的key-value结构数据库.Redis 是互联网技术领域使用最为广泛的存储中间件,它是「Remote Dictionary Service」的首字母 ...

  5. System.IO.FileSystemWatcher的坑

    System.IO命名空间下面有一个FileSystemWatcher,这个东西可以实现文件变动的提醒.需要监控文件夹变化(比如FTP服务器)的情形非常适用. 需要监控文件新建时,我们可以这么写: _ ...

  6. SQL Server-表结构的操作

    1.修改表的字段的数据类型 alter table [File_Info] alter column Upload_Request_ID nvarchar(14) not null 2.添加表的字段并 ...

  7. k8s健康检查报错

    编辑yaml去掉健康检查 kubectl edit deployment deploymentname 服务恢复

  8. 九、Django3的ASGI

    九.Django3的ASGI 9.1.Web应用程序和web服务器 Web应用程序(Web)是一种能完成web业务逻辑,能让用户基于web浏览器访问的应用程序,它可以是一个实现http请求和响应功能的 ...

  9. 【题解】CF991C Candies

    题面传送门 解决思路 看到 \(10^{18}\) 的范围,我们可以想到二分答案.只要对于每一个二分出的答案进行 \(check\) ,如果可行就往比它小的半边找,不可行就往比它大的半边找. 以下是 ...

  10. WPF之lognet4的基本使用

    log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文介绍lognet4的基本使用. 第一步:新 ...