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相关整理的更多相关文章

  1. Git相关整理以及学习

    1.取消还未进入暂存区的修改 git checkout + 文件名 2.取消已经进入暂存区但是还未提交的修改 git reset HEAD + 文件名 3.清理在远程仓库已经被删除的本地分支 git ...

  2. Git 常见问题整理

    在学习git的过程中,遇到如下问题,特整理如下: 1 error:src refspec master does not match any 问题产生 a git服务器使用如下命令新建一个项目 $ c ...

  3. Git 初学者使用指南及Git 资源整理

    Git 资源整理 Git is a free and open source distributed version control system designed to handle everyth ...

  4. 你所不知道的 CSS 阴影技巧与细节 滚动视差?CSS 不在话下 神奇的选择器 :focus-within 当角色转换为面试官之后 NPOI 教程 - 3.2 打印相关设置 前端XSS相关整理 委托入门案例

    你所不知道的 CSS 阴影技巧与细节   关于 CSS 阴影,之前已经有写过一篇,box-shadow 与 filter:drop-shadow 详解及奇技淫巧,介绍了一些关于 box-shadow  ...

  5. Git相关安装包打包下载

    Git相关软件偶尔需要***才能下载,故分享于此 1.Git-2.15.0-64-bit.exe 2.TortoiseGit-2.5.0.0-64bit.msi 3.TortoiseGit-Langu ...

  6. git 相关流程和报错解决

    git 相关流程: 预先配置: gitroot $ git config user.name XXXgitroot $ git config user.email XXX@XXX.com git re ...

  7. Sqlite多线程相关整理

    Sqlite多线程相关整理 Sqlite With MultiThreads 什么是线程安全? 当多个线程访问某个方法时,不管你通过怎样的调用方式.或者说这些线程如何交替地执行,我们在主程序中不需要去 ...

  8. git相关操作

    git相关命令 基本操作 git init git add xxx git commit -m "first commit" git tag -a V1.0 -m '我的标签' g ...

  9. git笔记整理-learnGitBranching

    声明 此篇文章内容是本人在 github上寻找到Peter Cottle的项目 https://github.com/pcottle/learnGitBranching.git 中学习git相关命令时 ...

随机推荐

  1. USACO 1.5 Superprime Rib

    Superprime Rib Butchering Farmer John's cows always yields the best prime rib. You can tell prime ri ...

  2. Flask Cookie和Session

    1.1.概念 cookie:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是为了解决这个问题,第 ...

  3. 开发工具 | 利用 deployd 搭建个人博客

    前端er,通过利用deployd + mongodb,实现可视化的接口编写,自定义mock数据,数据存储在mongodb中:deployd目前还没有中文网,更多信息请参考http://deployd. ...

  4. visio中如何取消跨线和去掉页边距

    比较来说,写论文visio和inkscape都不可缺少. 比如visio跨线的问题,已经遇到过两次忘记了.这次截个图作为记录.其实就是在“设计”一栏里,把连接线里面的跨线显示的对勾去掉即可. *** ...

  5. windows下Keras框架搭建

    1. 安装Anaconda https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ conda info来查询安装信息 conda list可以查 ...

  6. input输入框只允许输入数字

    /* input输入框只允许输入数字*/ <input type="text" onkeypress="keyPress()" > function ...

  7. struct和class两个关键字的区别

    1. <C++ Primer> 用class和struct关键字定义类的唯一差别在于默认访问级别:默认情况下,struct的成员为public,而class的成员为private. 2. ...

  8. Unity 脚本挂载位置

    原则:谁的脚本,挂载到谁身上 1,一般场景中会有个GameController脚本,挂在空物体上. 2,我见很多人脚本习惯挂到Camera上,好吧,不知算不算规范.

  9. Guitar Pro中文版下载,你想要的,都在这啦!

    我的音乐我做主!Guitar Pro7中文版的发布为更多音乐爱好者带来更多更优质的体验!为帮助所有吉他爱好者学习.绘谱.创作而设计的音乐空间!为前所未有的音乐盛听而震撼,音乐才子,等的就是你! Gui ...

  10. B-Tree概念

    记录下学习B-Tree: concept:(m-阶) 1.  根节点 孩子数 ( 2 <= N <= m) 根节点key数([m/2] - 1 <= n <=  m -1) 2 ...