vscode 取消拉去变基_GIT快速回忆

关于GIT和github:请搜索git下载安装,安装了git才能去github或码云(国内)观察自己上传的代码,github有个桌面版只是基于git的的图形工具,还是需要下载git。

概念:

1.提交、版本、commit,ID,差不多都一个意思,动词和名词的区别

2.远程服务器:码云,github等网站

3.工作区:指项目的实际文件所在位置。

4.暂存区(缓存区):add命令之后的记录所在位置。

5.储藏区:stash后的记录所在位置。

6.版本(ID):commit命令后生成。

7.指针:借用c语言的指针概念,指向某个版本(ID)

8.分支:一个指针如果叫做nima,那么称nima为分支

9.主分支:大家默认,叫master的指针作主分支

10.HEAD指针:借用c语言概念,HEAD为指向指针的指针,始终指向分支,被HEAD指向的分支为当前分支,也可理解为HEAD就是当前分支

11.跟踪:git将留意项目中被git设为跟踪的文件发生的变化

12..gitignore文件:对于状态为untracked files的文件,加入到该文件后不再提示未跟踪,即设置为不跟踪文件

提示:想看每个命令的全部选项,请在每个命令后打-h 。一般形式为-x或--xxxx

命令:

git init 本地初始化一个仓库

git clone [url] #克隆一个仓库到本地(也可添加主机后再fetch)

git clone -b [branch] [url] #克隆制定分支

git fetch [origin] #拉取远程分支origin/*(不指定分支则拉取所有分支)

git pull [远程主机名] #fetch+merge,细则同上

git add [文件] #纳入git管理

git remote add [主机名] [远程地址] #添加远程服务器,主机名不写则默认为"origin"

git remote show [主机名] #显示远程主机超级详细信息

git remote -v #-v为--verbose(啰唆的)缩写,显示详细信息

git remote rename [主机名] [新主机名] #重命名

git remote rm [主机名] #删除远程服务器

git log --oneline --graph --all # 一行、(树)图形化、全部分支,显示提交记录

git log -n #最近的n个提交记录

git merge [branch] #把branch合并到当前分支,并创建一个最终合并的commit

--abort #中止该次合并

--allow-unrelated-histories #允许不同项目的分支meger(pull也可)到本地

注意:一旦出现合并冲突,将进入“合并冲突状态”,该状态下无法使用任何分支切换命令,直到完成合并或终止合并才退出合并冲突状态。合并冲突状态中,需要修改后再次add冲突文件,并且手动进行一次commit,才能完成合并

git rebase [startPoint] [endPoint] #变基到startPoint,endPoint默认为HEAD可省略

git rebase [startPoint] [endPoint] --onto [branch] #把当前分支线上左开右闭区间内的commit变基到指定分支

-i #启用交互

git push [远程主机名] [本地分支名]:[远程分支名] #推送分支(当前分支存在追踪则只需"git push"即可)

git push -u [远程主机名] [本地分支名]:[远程分支名] #推送分支,同时设为追踪分支

git push [远程主机名] []:[远程分支名] #留空本地分支名,用空分支覆盖远程分支。实际为删除操作

git checkout [file] #从暂存区恢复文件

git checkout [branch] #新建或切换到该分支,工作目录文件回到该分支指向的版本(工作目录变)

git checkout [id] [file]#恢复文件到指定commit的状态

git checkout -b [new local branch] [remote branch] #获取远程分支,将本地新建分支指向获取的远程分支,同时加上远程跟踪

git rm [file] #默认工作区+远程仓库都删除文件

git rm [file] --cached #远程删除,本地不删除

git reset HEAD #重置到当前版本

git reset HEAD~2 #重置到两个版本前(HEAD~ 和 HEAD~1 一样意思)

git reset [$id] #重置到指定ID版本(log显示的那一大串或者log --oneline那小串都可以)

--soft #暂存区不变,工作区不变

--mixed #暂存区清空,工作区不变 默认值

--hard #暂存区清空,工作区回退

注意:无论哪个参数,均能移动当前分支。另外与revert区别在于,reset回去旧版本不被当作一个commit

git revert [$id] # 恢复某次提交的状态,恢复动作本身也创建了一次提交对象

git revert HEAD # 恢复最后一次提交的状态

git commit -m [message] #提交,不带参数-m将启用编辑器以编辑注释

git commit -am [message] #自动把受追踪文件进行暂存+提交

git branch #显示本地所有分支

-a #显示包括远程分支(origin/*)的所有分支

-v #详细显示本地所有分支

-vv #更加详细显示本地所有分支,包括了远程跟踪、落后/领先情况

–d [branch] #删除本地分支,但不能删除当前分支(切去其它分支先),不能删除未合并分支

-D [branch] #强制删除

-u [origin/branch] #设置跟踪的远程分支(-u为--set-upstream-to缩写)

--unset-upstream #取消上面设置的追踪

git difftool [id_1] [id_2] #启用对比工具以对照两次提交,也可以换成文件名对比文件

git stash #把暂存区和未添加到暂存区的被追踪文件储藏起来,清空暂存区和工作区记录(然后就能用checkout切换其他分支了)

git stash list #查看现有的储藏

git stash apply stash@{0} #通过list查看名称(如stash@{0}),不指定储藏则应用最近的储藏

git stash drop stash@{1} #删除指定储藏

git stash push #储藏入栈

git stash pop #储藏出栈

取消跟踪文件的问题

1.被add、commit操作后的文件不属于untracked files,不受.gitignore控制,始终被跟踪,除非他们被git rm命令删除或其他等效的命令

2.常见两种情况:

(1)远程仓库中不需要这个文件,但不想在本地中删除。

删除时加上--cached参数,然后把文件加入.gitignore即可。

(2)远程仓库需要setting.json这个配置文件,但不想暴露其中的个人私密配置信息,想要他只出现在第一次的提交中(没有密码信息),但后续更改不要去追踪变化(有密码信息)。

这个没办法的,将就吧。把setting.json加入到.gitignore,同时复制一份改名为setting.json.example,告知其他人setting.json.example是设置的模板文件,自行更改文件名。关于其讨论,转:git忽略已经被提交的文件

rebase变基操作

基本上必带参数-i,不然容易混乱。

-i参数交互模式,其实就是让你的默认编辑器打开一个临时生成的文件,里面是各种详细信息,通过编辑这个临时文件,就能完成交互,里面大量的#开头的东西,都是注释,主要是让你看下可以怎么改,不用再去百度有什么选项之类的。当你保存并关闭编辑器(vim中wq退出或vscode中关闭编辑窗口等),git进行分析并继续rebase。

当你选择合并若干commit时,git再次启动默认编辑器打开临时文件,让你自由决定如何控制commit提交信息等。

变基冲突时,是逐个commit进行的。如变基3个commit到某个分支,那么冲突等效于这3个commit依次merge到目标分支,也就是可能需要完成3次类似于merge冲突的操作。

类似于merge,你可以在任何时候使用git rebase --abort终止变基恢复原状。

类似于merge,在冲突解决后使用git add [file]暂存该冲突文件。不同在于无需马上提交,而是git rebase --continue以继续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346233.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java对象序列化去掉字段_使用序列化查找对象中的脏字段

java对象序列化去掉字段假设您正在开发一个将对象自动保存到数据库中的框架。 您需要检测两次保存之间所做的更改,以便仅保存已修改的字段。 如何检测脏场。 最简单的方法是遍历原始数据和当前数据,并分别比较每个字段。 代码如下: public s…

c语言中怎么定义的字符串,C语言中定义字符串的几种方式

1,什么是字符串?所谓字符串本质上就是以\0作为结尾的特殊字符数组;2,定义字符串的过程中有哪些注意点由于字符串本质上其实就是以\0作为结尾的特殊字符数组,所以定义字符串时,必须保证字符串存储的最后一个…

ios 不被遮挡 阴影_解决ios10导航栏底部阴影线条隐藏失效问题

2016.11.13 21:47* 字数 887 阅读 791评论 0喜欢 16一、置空阴影图片基于iOS9,在iOS10上不好使.[self.navigationController.navigationBar setShadowImage:[UIImage new]];二、剪裁navigationBar首先看看UIView的clipsToubounds属性在SDK中的描述:property(nonatom…

Java的未来项目:巴拿马,织布机,琥珀和瓦尔哈拉

新闻稿“ Oracle Code One Java主题演讲概述了Java的未来 ”在Oracle Code“突出未来项目” Valvala 项目,巴拿马 项目,Amber 项目和Loom 项目中描述了Java主旨。 这篇文章为不熟悉上述项目的人提供了每个项目的简要摘要以及与每个项目相关的一些最新工作…

c语言选择题答案在哪查,C语言选择题及答案

C语言选择题及答案成绩的取得离不开我们平时的努力,以下是百分网小编为大家整理的C语言选择题及答案,希望对大家的学习起到帮助!选择题1.在深度为5的满二叉树叶中,叶子结点的个数为( )。A.32B.31C.16D.152.软件生命周期中,花费最多…

vs2019中如何创建qt项目_在VS2015中创建Qt项目【VS+Qt项目开发系列】(二)

在VS2015中创建Qt项目【VSQt项目开发系列】(二)发布时间:2018-04-20 22:44,浏览次数:1269, 标签:VSQt在上一篇【VSQt项目开发】(一)在VS2015中安装Qt环境中,我们完成了开发环境的安装,现在我们正式创建我们的项目。项目…

c语言ok未定义标识符,C语言中宏的相关知识 - osc_y7ckpzr9的个人空间 - OSCHINA - 中文开源技术交流社区...

2019/04/27 16:02 1.宏的定义:宏定义就是预处理命令的一种,它允许用一个标识符来表示一个字符串。格式如下:#define name(宏名) stuff(字符串)本质就是使用宏名去替代字符串的内容,注意是原封不动的替换,不要自己潜意识…

pythoni屏幕连点_【Flutter组件】仿抖音双击点赞弹出爱心效果(可连点)

效果简介仿抖音点赞手势,单击暂停,双击点赞,可连续点击添加多个爱心,特点如下全部效果为代码绘制(爱心图标来自Material Icon的图标)套上在目标Widget外即可使用提供单击与点赞的回调建议复制代码使用,动画可按需修改没…

java8 linq4j_Java 8仍然需要LINQ吗? 还是比LINQ更好?

java8 linq4j长期以来, LINQ是.NET软件工程生态系统中发生的最好的事情之一。 通过在Visual Studio 2008中引入lambda表达式和monad ,它使C#语言跃居Java之前,Java在当时是版本6,但仍在讨论泛型类型擦除的优缺点。 这项…

printf sizeof c语言,你可能对 sizeof(i++) 有点误解。。。

原标题:你可能对 sizeof(i) 有点误解。。。各位,今天还是按照惯例给大家分享一个C语言容易出现的小错误,这也是跟sizeof有关的,问题虽小,却可管中窥豹,话不多说,代码先行:# includei…

mongodb上一篇下一篇_如何使用Microsoft office word—上一篇

从这一期开始,将会逐一介绍Microsoft office的几个常用的软件,例如word ppt excel等,每一个软件将分为几期介绍,这几期介绍word。注意:介绍软件版本是Microsoft office365。如何插入图片首先打开word,点击插…

Java:使用Mockito模拟ResultSet

这篇文章展示了如何使用Mockito模拟java.sql.ResultSet 。 它可用于帮助单元测试代码对ResultSet (例如ResultSetExtractor )执行操作,而无需依赖外部数据源。 您可以通过提供列名列表和2D数据数组来创建MockResultSet 。 例如: …

c语言如何随机获取1kb,基于VS2010+C语言实现播放器的顺序播放、随机播放

1.[文件] music.h ~ 920B 下载(38)/** File: music.h* Time: 2014/10/11*/#ifndef __MUSIC_H__#define __MUSIC_H__typedef enum { UNPLAYED, PLAYED } BOOL; // 自定义一个bool类型typedef enum { ORDER, RANDOM } PLAY_MODEL; // 自定义一个播放类型typedef char *MUSIC_…

rmi远程代码执行漏洞_fastjson远程代码执行漏洞复现

漏洞原理fastjson提供了autotype功能,在请求过程中,我们可以在请求包中通过修改type的值,来反序列化为指定的类型,而fastjson在反序列化过程中会设置和获取类中的属性,如果类中存在恶意方法,就会导致代码执…

c语言编简单博弈小游戏,[2018年最新整理]实验二:利用α-β搜索过程的博弈树搜索算法编写一字棋游戏.doc...

[2018年最新整理]实验二:利用α-β搜索过程的博弈树搜索算法编写一字棋游戏实验二:利用α-β搜索过程的博弈树搜索算法编写一字棋游戏一、实验目的与要求(1)了解极大极小算法的原理和使用方法,并学会用α-β剪枝来提高算法的效率。(2)使用C语…

java中重载 参数顺序_Java方法中的参数太多,第4部分:重载

java中重载 参数顺序期望将过多的参数传递给Java方法的问题之一是,该方法的客户端很难确定它们是否以适当的顺序传递了适当的值。 在以前的文章中,我描述了如何使用自定义类型 , 参数对象和构建器来解决此问题。 解决此问题的另一种方法&…

c语言金箍棒答案,《西游记》阅读测试题(带答案)

《西游记》测试题(后附答案)姓名得分1.《如来佛辨识假猴王》故事中,那只假孙悟空是什么猴子变的?()A.金丝猴 B.石猴 C.六耳猕猴2.金角大王和银角大王原来是()的弟子。A.太上老君 B.孙悟空 C.观音菩萨3.蜘蛛…

五个金念什么_四个“金”字读什么?

展开全部读音为:jīn ,是金字的异体字写法,读音和意思与金字完全相同,打不62616964757a686964616fe58685e5aeb931333431353265出来,如下图:金拼音:jīn释义:1.俗称金子。金属元素&am…

Istio的零停机滚动更新

本系列文章的第一部分介绍了如何在Kubernetes集群中实现真正的零停机时间更新。 我们专门解决了将流量从旧实例切换到新实例时出现的请求失败。 本文将展示如何使用Istio群集实现相同的目标。 服务网格技术(例如Istio)通常与容器编排结合使用。 Istio以…

聚类dbi指数_一种基于DBI-PD聚类算法的异常检测机制

一种基于DBI-PD聚类算法的异常检测机制丁姝郁【期刊名称】《电脑开发与应用》【年(卷),期】2015(000)002【摘要】分析了网络数据维数和检测准确度之间的关系,介绍了常用于入侵检测的聚类分析方法及其优缺点。在此基础上,提出一种以戴维森堡丁指数(DBI)为…