git相关整理
title: git相关整理
toc: false
date: 2018-09-24 20:42:55
git merge 和 git merge --no--ff有什么区别?
git merge命令用于合并指定分支到当前分支。默认情况下,执行快进式合并(fast-farward merge),直接通过把master指向feature来将两个分支并为一个分支,只保存master的分支信息。
git merge --no--ff执行正常合并,在master分支上生成新的节点,就可以保存之前的feature分支历史。能够更好的查看merge历史和branch状态。
因此为了保证版本演进的清晰,推荐使用--no--ff的方法。


工作区与暂存区
工作区:workspace,git管理的当前文件夹
暂存区:stage/index,工作区与分支之间的中转站

git add——将修改添加到暂存区
git checkout -- filename——撤销工作区中指定文件的修改
git checkout . ——撤销工作区中当前目录中的所有更改
git rm --cached filename——删除暂存区中的指定文件,但保留本地文件
git rm filename——删除暂存区中的指定文件,同时删除本地文件
版本回退
reset
git reset --soft ——只回退commit,暂存区和工作区不做出改变。
git reset --hard——回退commit、暂存区、工作区,即本地的代码也会回退,慎用!
git reset --mixed——回退commit和暂存区,以上两种情况的中和版本,reset不带参数的默认方式
关于版本:
HEAD——当前版本
HEAD^——上一个版本
HEAD^^——上上一个版本
HEAD^^^——上上上一个版本
HEAD~n——上n个版本
也可以使用commitID
一个栗子:
git reset --soft HEAD^
只回退commit到上一个版本
reset回退不会保留回退到的版本之后的所有commit,因此在push时会因为落后于远程commit而报错,若想强制覆盖,可以为push命令加上--force或-f来进行强制操作。
revert
revert用一个新提交来消除一个历史提交所做的所有修改,即
revert不影响以前的所有commit
git revert HEAD // 撤销最近一次提交
git revert HEAD^ // 撤销上上次提交
git revert commitID // 撤销指定id的提交
回退暂存区的修改
git reset HEAD,命令具体含义看上边的版本回退。
删除分支
git branch -d BranchName——删除本地分支
git push origin --delete BranchName/git push origin :BranchName——删除远程分支
git pull 与 git fetch 区别
git fetch——拉取远程分支并更新到origin/BranchName分支中
git pull——拉取远程分支后与本地当前分支合并
git fetch origin master // 保存在本地'origin/master'分支中
git merge origin/master // 将fetch到的分支合并到本地的当前分支中
git pull origin master // 以上两句命令相当于这一句命令
合并时出现冲突的解决办法
git merge显示冲突时,
使用git status查看冲突的文件,
冲突部分用<<<<<<< ======= >>>>>>>标示,
编辑冲突的文件:
// ……
<<<<<<< HEAD // 合并当前分支的内容
// ……
=======
// ……
>>>>>>> BranchName // 合并前要合并的分支的内容
// ……
然后git add冲突文件发现成功了!秒啊!
git相关整理的更多相关文章
- Git相关整理以及学习
1.取消还未进入暂存区的修改 git checkout + 文件名 2.取消已经进入暂存区但是还未提交的修改 git reset HEAD + 文件名 3.清理在远程仓库已经被删除的本地分支 git ...
- Git 常见问题整理
在学习git的过程中,遇到如下问题,特整理如下: 1 error:src refspec master does not match any 问题产生 a git服务器使用如下命令新建一个项目 $ c ...
- Git 初学者使用指南及Git 资源整理
Git 资源整理 Git is a free and open source distributed version control system designed to handle everyth ...
- 你所不知道的 CSS 阴影技巧与细节 滚动视差?CSS 不在话下 神奇的选择器 :focus-within 当角色转换为面试官之后 NPOI 教程 - 3.2 打印相关设置 前端XSS相关整理 委托入门案例
你所不知道的 CSS 阴影技巧与细节 关于 CSS 阴影,之前已经有写过一篇,box-shadow 与 filter:drop-shadow 详解及奇技淫巧,介绍了一些关于 box-shadow ...
- Git相关安装包打包下载
Git相关软件偶尔需要***才能下载,故分享于此 1.Git-2.15.0-64-bit.exe 2.TortoiseGit-2.5.0.0-64bit.msi 3.TortoiseGit-Langu ...
- git 相关流程和报错解决
git 相关流程: 预先配置: gitroot $ git config user.name XXXgitroot $ git config user.email XXX@XXX.com git re ...
- Sqlite多线程相关整理
Sqlite多线程相关整理 Sqlite With MultiThreads 什么是线程安全? 当多个线程访问某个方法时,不管你通过怎样的调用方式.或者说这些线程如何交替地执行,我们在主程序中不需要去 ...
- git相关操作
git相关命令 基本操作 git init git add xxx git commit -m "first commit" git tag -a V1.0 -m '我的标签' g ...
- git笔记整理-learnGitBranching
声明 此篇文章内容是本人在 github上寻找到Peter Cottle的项目 https://github.com/pcottle/learnGitBranching.git 中学习git相关命令时 ...
随机推荐
- USACO 1.5 Superprime Rib
Superprime Rib Butchering Farmer John's cows always yields the best prime rib. You can tell prime ri ...
- Flask Cookie和Session
1.1.概念 cookie:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是为了解决这个问题,第 ...
- 开发工具 | 利用 deployd 搭建个人博客
前端er,通过利用deployd + mongodb,实现可视化的接口编写,自定义mock数据,数据存储在mongodb中:deployd目前还没有中文网,更多信息请参考http://deployd. ...
- visio中如何取消跨线和去掉页边距
比较来说,写论文visio和inkscape都不可缺少. 比如visio跨线的问题,已经遇到过两次忘记了.这次截个图作为记录.其实就是在“设计”一栏里,把连接线里面的跨线显示的对勾去掉即可. *** ...
- windows下Keras框架搭建
1. 安装Anaconda https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ conda info来查询安装信息 conda list可以查 ...
- input输入框只允许输入数字
/* input输入框只允许输入数字*/ <input type="text" onkeypress="keyPress()" > function ...
- struct和class两个关键字的区别
1. <C++ Primer> 用class和struct关键字定义类的唯一差别在于默认访问级别:默认情况下,struct的成员为public,而class的成员为private. 2. ...
- Unity 脚本挂载位置
原则:谁的脚本,挂载到谁身上 1,一般场景中会有个GameController脚本,挂在空物体上. 2,我见很多人脚本习惯挂到Camera上,好吧,不知算不算规范.
- Guitar Pro中文版下载,你想要的,都在这啦!
我的音乐我做主!Guitar Pro7中文版的发布为更多音乐爱好者带来更多更优质的体验!为帮助所有吉他爱好者学习.绘谱.创作而设计的音乐空间!为前所未有的音乐盛听而震撼,音乐才子,等的就是你! Gui ...
- B-Tree概念
记录下学习B-Tree: concept:(m-阶) 1. 根节点 孩子数 ( 2 <= N <= m) 根节点key数([m/2] - 1 <= n <= m -1) 2 ...