常用 Git 命令行操作
本文记录了一些常用 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
让当前分支重新基于 BRANCHgit 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 命令行操作的更多相关文章
- windows下使用TortoiseGit代替Git命令行操作
windows下使用TortoiseGit代替Git命令行操作 大家在使用svn的时候,都非常喜欢使用小乌龟,也就是TortoiseSVN:那么git也有小乌龟版本,即TortoiseGit. 1.安 ...
- 3.Git 命令行操作
1.Git 命令行操作(本地库操作): 1.1. 创建本地库(本地库初始化): 第一步:首先在D盘建了个名为git空文件夹,命令行中cd到这个文件夹: 第二步:通过git init命令把这个目录变成G ...
- git 命令行操作(之前整理在有道的笔记)
1. 常用命令 切换分支 git checkout [branch_name] 检出分支 git clone [git_URL] 更新分支 git pull origin [branch_name] ...
- GIT → 05:Git命令行操作
5.1 打开命令行窗口 安装Git后,在资源管理器的空白处,单击鼠标右键打开窗口,点击 Git Bash Here ,打开Git命令行窗口,在窗口中可直接使用Linux命令操作: 5.2 初始化Git ...
- git 命令行操作
Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目 这里说一下在命令行对git进行操作 git init [在本地初始化一个git库] //当你的git服务器里面已经有文 ...
- git命令行操作
从本地上传代码到仓库(假设已经建好仓库): 1.初始化: git init 2.将所有文件加入缓存区: git add * 3.提交当前工作空间的修改内容: git commit -m 'commit ...
- [Git] 1、常用Git命令行总结(一)
一.GIT CLONE最常用的有如下几个 1.最简单直接的命令:git clone xxx.git 2.如果想clone到指定目录:git clone xxx.git “指定目录” 3.clone时创 ...
- git命令行操作详解
目录 1.常用操作 1.1 新建代码库 1.2 配置 1.3 remote管理 1.4 添加和撤销操作 1.5 代码提交 1.6 分支操作 1.7 查看信息 1.8 pull操作 1.9 push操作 ...
- Git命令行操作(三)
1. 本地库初始化 进入指定目录,如:D:\gitSpace\OA 右键-->Git Bash Here,执行命令: git init 效果如下: #查看.git目录 ls -la # 进入.g ...
- 3. git命令行操作之远程库操作
3.1 基本操作 注册GitHub账号 在本地创建一个本地库并初始化 登录到gitHub创建一个远程库 注意:windows的凭据管理器中会保存github登录信息.如果要切换登录者,先删除相应凭据 ...
随机推荐
- this硬绑定
一.this显示绑定 this显示绑定,顾名思义,它有别于this的隐式绑定,而隐式绑定必须要求一个对象内部包含一个指向某个函数的属性(或者某个对象或者上下文包含一个函数调用位置),并通过这个属性间接 ...
- 驱动开发:内核枚举Minifilter微过滤驱动
Minifilter 是一种文件过滤驱动,该驱动简称为微过滤驱动,相对于传统的sfilter文件过滤驱动来说,微过滤驱动编写时更简单,其不需要考虑底层RIP如何派发且无需要考虑兼容性问题,微过滤驱动使 ...
- 商品期货通用模型JF1
更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流. 行情不确定性加剧 回顾2022年上半年的期货市场行情,在一个个宏观事件的不断冲击下,期货市场的不确定性加 ...
- 人人都懂的HTML基础知识-HTML教程(1)
01.HTML基础简介 HTML (HyperText Markup Language,超文本标记语言) 不是一门编程语言,而是一种用于定义内容结构的标记语言,用来描述网页内容,文件格式为.html. ...
- Java 8 Stream API 引入和使用
引入流 流是什么 流是Java API的新成员,它允许你以声明性的方式处理数据集合.可以看成遍历数据集的高级迭代.流可以透明地并行处理,无需编写多线程代码.我们先简单看一下使用流的好处.下面两段代码都 ...
- 探究Presto SQL引擎(4)-统计计数
作者:vivo互联网用户运营开发团队 - Shuai Guangying 本篇文章介绍了统计计数的基本原理以及Presto的实现思路,精确统计和近似统计的细节及各种优缺点,并给出了统计计数在具体业务 ...
- <一>从指令角度了解函数堆栈调用过程
代码 点击查看代码 #include <iostream> using namespace std; int sum(int a,int b){ int temp=0; temp= a + ...
- Python基础部分:8、for循环和range的使用
目录 一.while循环补充说明 1.死循环 2.嵌套及全局标志位 二.for...循环 1.for...循环特点 2.for...循环语法结构 三.range方法 1.什么是range 2.不同版本 ...
- Codeforces Round #791(Div 2)——D
D Problem - D - Codeforces 题意: 给定一个有向图,每个点有自己的点权,求一条长度为K的路径使得路径上的最大点权最小,输出该条路径上的最大点权. 思路:(二分+拓扑排序) 最 ...
- 大数据下一代变革之必研究数据湖技术Hudi原理实战双管齐下-上
@ 目录 概述 定义 发展历史 特性 使用场景 编译安装 编译环境 编译Hudi 关键概念 TimeLine(时间轴) File Layouts(文件布局) 索引 表类型 查询类型 概述 定义 Apa ...