Git速查手册_如何查看git手册-程序员宅基地

技术标签: git常用命令  Git  git  git速查  git操作  git工作常用  

1024了,程序猿们节日快乐,简单整理个供小白使用的git速查手册,之后有时间再完善,其实一会一些简单的操作平时工作就够用了(只要你别闹!一般不会有什么大问题),哈哈哈

Git的组成

git的组成

git config–相关配置

安装完Git后第一件要做的事,设置用户信息(global可换成local在单独项目生效):
git config --global user.name "用户名" #设置用户名
git config --global user.email "用户邮箱" #设置邮箱
git config --global user.name #查看用户名是否配置成功
git config --global user.email #查看邮箱是否配置
其他查看配置相关
git config --global --list #查看全局设置相关参数列表
git config --local --list #查看本地设置相关参数列表
git config --system --list #查看系统配置参数列表
git config --list #查看所有Git的配置(全局+本地+系统)
git config --global color.ui true #显示git相关颜色

git remote–查看远程库信息

git remote #-v 显示更详细的信息

git init–初始化仓库

git init

git add–将文件提交到暂存区

git add 文件名 #将工作区的某个文件添加到暂存区
git add -u #添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件
git add -A #添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件
git add . #将当前工作区的所有文件都加入暂存区
git add -i #进入交互界面模式,按需添加文件到缓存区

git commit–将暂存区文件提交到本地仓库

git commit -m "提交说明" #将暂存区内容提交到本地仓库
git commit -a -m "提交说明" #跳过缓存区操作,直接把工作区内容提交到本地仓库

git status–查看仓库当前状态

git status

git diff–比较文件异同

git diff #工作区与暂存区的差异
git diff 分支名 #工作区与某分支的差异,远程分支这样写:remotes/origin/分支名
git diff HEAD #工作区与HEAD指针指向的内容差异
git diff 提交id 文件路径 #工作区某文件当前版本与历史版本的差异
git diff --stage #工作区文件与上次提交的差异(1.6 版本前用 --cached)
git diff 版本TAG #查看从某个版本后都改动内容
git diff 分支A 分支B #比较从分支A和分支B的差异(也支持比较两个TAG)
git diff 分支A...分支B #比较两分支在分开后各自的改动
另外:如果只想统计哪些文件被改动,多少行被改动,可以添加--stat参数

git log–查看历史记录

git log #查看所有commit记录(SHA-A校验和,作者名称,邮箱,提交时间,提交说明)
git log -p -次数 #查看最近多少次的提交记录
git log --stat #简略显示每次提交的内容更改
git log --name-only #仅显示已修改的文件清单
git log --name-status #显示新增,修改,删除的文件清单
git log --oneline #让提交记录以精简的一行输出
git log --graph --all --oneline #图形展示分支的合并历史
git log --author=作者 #查询作者的提交记录(和grep同时使用要加一个–all–match参数)
git log --grep=过滤信息 #列出提交信息中包含过滤信息的提交记录
git log -S查询内容 #和–grep类似,S和查询内容间没有空格
git log fileName #查看某文件的修改记录,找背锅专用

git stash–暂存修改内容

git stash //新建存储
git stash save "save message" //添加备注,方便查找
git stash list //查看stash了哪些存储
git stash show //显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{ KaTeX parse error: Expected 'EOF', got '}' at position 4: num}̲,比如第二个 git stas…num} -p,比如第二个:git stash show stash@{1} -p
git stash apply //恢复某个存储,默认第一个存储(存储列表不删除)stash@{$num}可以指定哪个暂存。 eg:git stash apply stash@{1}。
git stash pop //恢复某个存储,默认第一个存储(删除对应存储列表)会将缓存堆栈中的对应stash删除
git stash drop stash@{$num} //丢弃某个暂存,比如第二个:git stash drop stash@{1},从列表中删除这个存储
git stash clear //删除全部暂存,删除所有缓存的stash

git reset / git reflog–代码回滚(版本回退)

git reset HEAD^ #恢复成上次提交的版本
git reset HEAD^^ #恢复成上上次提交的版本,就是多个^,以此类推或用~次数
git reflog
git reset --hard 版本号
--soft:只是改变HEAD指针指向,缓存区和工作区不变;
--mixed:修改HEAD指针指向,暂存区内容丢失,工作区不变;
--hard:修改HEAD指针指向,暂存区内容丢失,工作区恢复以前状态;

git rm–删除版本库文件

git rm 文件名

git–版本库里的版本替换工作区的版本

git checkout -- test.txt

git remote–本地仓库内容推送到远程仓库

git remote add origin [email protected]:帐号名/仓库名.git

git clone–从远程仓库克隆项目到本地

git clone [email protected]:git帐号名/仓库名.git

git–拉取远程分支到本地仓库

git checkout -b 本地分支 远程分支 #会在本地新建分支,并自动切换到该分支
git fetch origin 远程分支:本地分支 #会在本地新建分支,但不会自动切换,还需checkout
git branch --set-upstream 本地分支 远程分支 #建立本地分支与远程分支的链接

git checkout -b–创建分支

git checkout -b dev #-b表示创建并切换分支
.
上面一条命令相当于一面的二条:
git branch dev #创建分支
git checkout dev #切换分支

git branch–查看分支

git branch

git merge–合并分支

git merge dev #用于合并指定分支到当前分支
git merge --no-ff -m "merge with no-ff" dev #加上–no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并

git–删除分支

git branch -d dev

git–查看分支合并图

git log --graph --pretty=oneline --abbrev-commit

git revert–撤消某次提交

git revert HEAD #撤销最近的一个提交
git revert 版本号 #撤销某次commit

git tag–标签命令

git tag 标签 #打标签命令,默认为HEAD
git tag #显示所有标签
git tag 标签 �版本号 #给某个commit版本添加标签
git show 标签 #显示某个标签的详细信息

git–同步远程仓库更新

git fetch origin master #从远程获取最新的到本地,首先从远程的origin的master主分支下载最新的版本到origin/master分支上,然后比较本地的master分支和origin/master分支的差别,最后进行合并。
新手建议使用git pull

git push–同步远程仓库

git push -u origin master

git cherry-pick–将指定代码应用于其他分支(复制 commit)

git cherry-pick <commitHash> //将指定提交应用于当前分支
git cherry-pick <HashA> <HashB> //一次转移多个提交,这会在当前分支生成多个对应的新提交
git cherry-pick A..B //转移一系列的连续提交, 转移从 A 到 B 的所有提交。它们必须按照正确的顺序放置:提交 A 必须早于提交 B,否则命令将失败,但不会报错。提交 A 将不会包含在 Cherry pick 中。
git cherry-pick A^..B // 提交 A 包含在 Cherry pick 中。
git cherry-pick feature(分支名) //将feature分支得最近一次提交,转移到当前分支
git cherry-pick -m 1 <commitHash> //Cherry pick 采用提交commitHash来自编号1的父分支的变动
git cherry-pick --continue //发生代码冲突后,第一步将修改的文件重新加入暂存区(git add .),第二步使用git cherry-pick --continue,让 Cherry pick 过程继续执行。
git cherry-pick --abort //放弃 cherry-pick, 发生代码冲突后,放弃合并,回到操作前的样子。
git cherry-pick --quit //退出 cherry-pick, 不回到操作前的样子。即保留已经 cherry-pick 成功的 commit,并退出 cherry-pick 流程。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43106777/article/details/102721070

智能推荐

shell 实现并发,并控制并发数量_shell 并发-程序员宅基地

文章浏览阅读4k次,点赞4次,收藏26次。为了方便理解,一步步的来首先先看一下串行的:#! /bin/bashST=$(date +%s)for i in $(seq 1 10)do echo $i sleep 1 # 模拟程序、命令doneET=$(date +%s)TIME=$(( ${ET} - ${ST} ))echo "time: ${TIME}"输出结果:12345678910time: 10这就最原始的进程运行模拟,串行方式,无法有效利用计算机的资源,_shell 并发

Mybatis-puls自动分页Page无法分页解决_使用mybatis-plus中page进行分页不生效-程序员宅基地

文章浏览阅读3.3k次,点赞3次,收藏5次。一开始使用Page时发现数据能出来但是无法分页,只能全部显示。打印数据出来也显示0。最后查了许多资料发现这个插件需要一个工具类的支持才可以实现。检查了一下代码发现也没有问题。最后更改完成测试,好使了。_使用mybatis-plus中page进行分页不生效

dpi与dp的关系_px、dp、sp、dpi之间的区别和转换-程序员宅基地

文章浏览阅读2k次。px、dp、sp、dpi之间的区别和转换区别:px (pixels)像素 -- 是像素,就是屏幕上实际的像素点单位。(一般UI人员在ps中经常使用)dp/dip 设备独立像素,android layout经常使用的尺寸单位,与设备屏幕有关,dp是虚拟像素,在不同的像素密度的设备上会自动适配。即与像素密度无关。sp 放大像素,主要是处理字体的大小dpi:Android支持四种不同的dpi模式:ldp..._dpi dp

2021-1-31: c语言中 %f 和 %lf 的区别_%if-程序员宅基地

文章浏览阅读3.4k次,点赞7次,收藏14次。%f和%lf分别是float类型和double类型用于格式化输入输出时对应的格式符号。其中:float,单精度浮点型,对应%f。double,双精度浮点型,对应%lf。在用于输出时:float类型可以使用%lf格式,但不会有任何好处。double类型如果使用了%f格式可能会导致输出错误。在用于输入时:double 类型使用了%f格式,会导致输入值错误。float类型使用double类型不仅会导致输入错误,还可能引起程序崩溃。所以在输入输出时,一定要区分好double和float,而使用对_%if

IDEA 使用Git图文详解_git idea-程序员宅基地

文章浏览阅读10w+次,点赞325次,收藏1.6k次。一、配置git路劲:或二、克隆项目或填写克隆路径及输出路径三、上传项目到git仓库 1、在你的idea里新建git仓库,这是新建本地仓库,等会会同步到线上git仓库 2、新建后如果文件名不是绿色的表示没有加入到git索引中 3、将需要上传的文件按照下图方式add 4、添加后,相应的文件名会变成绿色 5、然后commit项目,提交项目,这里是先提交带本地仓库 6、然后push到线上仓..._git idea

【数据结构】超详细讲解:算术表达式转化为后缀表达式、前缀表达式、表达式树的构建_算术表达式的后缀式怎么算-程序员宅基地

文章浏览阅读7.5k次,点赞24次,收藏58次。中缀表达式:中缀表达式是我们常见的数学表达式,其中运算符放置在两个操作数中间,例如:3 + 4 * 2。在中缀表达式中,还可以包含括号,用于改变运算符的优先级。后缀表达式:后缀表达式(也称为逆波兰表达式)是一种将运算符放置在操作数后面的表达式,例如:3 4 2 * 1 5 - 2 ^ / +。在后缀表达式中,所有操作符的优先级相同,而括号则不再需要。前缀表达式:前缀表达式(也称为波兰表达式)是一种将运算符放置在操作数前面的表达式,例如:+ / * 3 4 2 ^ - 1 5 2。_算术表达式的后缀式怎么算

随便推点

Ubuntu20.04解决应用中心打不开的问题_snap商店打不开-程序员宅基地

文章浏览阅读1.5w次,点赞9次,收藏76次。Ubuntu20.04软件中心打不开 尝试了很多方法 Ubuntu 20.04 默认把软件中心换成了 snap, 感觉 snap 应用老出状况, snap 应用不但体积大, 安装好的应用还不时就崩溃, 所以如果要把电脑里的所有 snap 应用全部替换了, snapd 也卸载了. 下面这三句可以有效的解决 sudo apt install ubuntu-software sudo sn..._snap商店打不开

C语言-数据结构-栈-实验报告_数据结构栈的应用实验报告-程序员宅基地

文章浏览阅读6.5k次,点赞8次,收藏70次。实验报告内容:一、实验目的、要求:(1)熟练掌握栈的特点(先进后出FILO)及基本操作,如入栈、出栈等,栈的顺序存储结构和链式存储结构,以便在实际问题背景下灵活应用。(2)编写适当的主函数和相关函数,使实验题目运行出正确结果。(3)当场编程、调试、编译。(4)程序具有一定的健壮性、可读性,尽量简洁。(5)程序运行完成后分别存盘,上交实验报告,要求写出实验体会二、实验内容:(1)实验题目(2)主要函数的算法设计思想(3)程序清单(3)测试数据、实验结果及结论(4)实验体会(实验中存在的_数据结构栈的应用实验报告

qRadioButton-程序员宅基地

文章浏览阅读384次。#ifndef TESTRADIOBUTTON_H#define TESTRADIOBUTTON_H#include #include "ui_testradiobutton.h"class testRadioButton : public QMainWindow{ Q_OBJECTpublic: testRadioButton(QWidget *paren_radiobutton

C# WinForm 封装自定义组件(控件)Dll_把winfrom用户自定义控件封装成dll-程序员宅基地

文章浏览阅读2w次,点赞6次,收藏22次。封装自定义控件很简单,没什么技术含量,这里通过封装自定义的数字文本框实例简单总结一下:【1】新建自定义控件库 -- Windows Forms Control Library【2】添加自定义组件 -- Component Class【3】继承TextBox,添加KeyPress事件,代码如下:using System;usi_把winfrom用户自定义控件封装成dll

mysql关闭slave_mysql 关闭slave-程序员宅基地

文章浏览阅读619次。mysql版本:5.6.14一、修改 my.cnf 文件,增加skip-slave-start参数即可[mysqld]#主从log-bin=mysql-binserver-id=148skip-slave-start二、重启mysql/etc/init.d/mysql restart三、验证slave是否启动mysql> SHOW SLAVE STATUS\G****************..._mysql disable slave

vue-router或者vue-admin-template中刷新跳转404的解决办法_vue admin 直接跳到404-程序员宅基地

文章浏览阅读5k次。vue或者vue-admin-template中任意页面刷新都跳转404vue在刷新的时候动态添加的router会清空,所以在动态添加的路由页面刷新的时候会因为清空的router而跳转到404.。在/src/premission.js的最下方router.afterEach修改成下面这样router.afterEach(to =>{ sessionStorage.setItem('r..._vue admin 直接跳到404