git学习(1)
一、git fetch 和git pull 的差别
1、git fetch 相当于是从远程获取最新到本地,不会自动merge,如下指令:
git fetch orgin master //将远程仓库的master分支下载到本地当前branch中 git log -p master ..origin/master //比较本地的master分支和origin/master分支的差别 git merge origin/master //进行合并
也可以用以下指令:
git fetch origin master:tmp //从远程仓库master分支获取最新,在本地建立tmp分支 git diff tmp //將當前分支和tmp進行對比 git merge tmp //合并tmp分支到当前分支
2. git pull:相当于是从远程获取最新版本并merge到本地
git pull origin master
git pull 相当于从远程获取最新版本并merge到本地
在实际使用中,git fetch更安全一些
3、两者区别的详细解释
https://blog.csdn.net/weixin_41975655/article/details/82887273
二、git将多个commit合并成一个
出处:https://www.jianshu.com/p/964de879904a
在执行git commit命令之后,如果之前已经有了很多次commit,想将多次commit历史记录合并起来,使得history不要太多太乱,可以采用git log查看历史记录,然后用git rebase进行合并。
git log -l #查看log记录
git rebase -i HEAD~ # 合并前两个commit
首先假设我们有3个 commit
我们需要将 2dfbc7e8
和 c4e858b5
合并成一个 commit,那么我们输入如下命令
其中,-i
的参数是不需要合并的 commit 的 hash 值,这里指的是第一条 commit, 接着我们就进入到 vi
的编辑模式
可以看到其中分为两个部分,上方未注释的部分是填写要执行的指令,而下方注释的部分则是指令的提示说明。指令部分中由前方的命令名称、commit hash 和 commit message 组成。
当前我们只要知道 pick
和 squash
这两个命令即可。
pick
的意思是要会执行这个 commitsquash
的意思是这个 commit 会被合并到前一个commit
我们将 c4e858b5
这个 commit 前方的命令改成 squash
或 s
,然后输入:wq
以保存并退出
这是我们会看到 commit message 的编辑界面
其中, 非注释部分就是两次的 commit message, 你要做的就是将这两个修改成新的 commit message。
输入wq
保存并推出, 再次输入git log
查看 commit 历史信息,你会发现这两个 commit 已经合并了。
注意事项:如果这个过程中有操作错误,可以使用 git rebase --abort
来撤销修改,回到没有开始操作合并之前的状态。
git学习(1)的更多相关文章
- Git 学习看这篇就够了!
Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. 可能新手会问"git和github有什么关系啊?" git是一个版本控制工具: githu ...
- Git学习笔记与IntelliJ IDEA整合
Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...
- git学习之branch分支
作为新手,站在我的角度肤浅的来理解,分支就是相当于开辟了一个新的临时工作区,在这个工作区进行文件代码改动,然后在合并到master主工作区,这样能保证主工作区的安全性和稳定性,对于团队协作尤为重要. ...
- git学习手册
#git学习手册 git: Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理.[2] Git 是 Linus Torvalds 为了帮助管理 Linux内核开发而 ...
- Git学习笔记(10)——搭建Git服务器
本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己 ...
- Git学习笔记(四)
一.忽略特殊文件 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件. 不需要从头写.gitignore文件,GitHub已经为我们 ...
- git 学习笔记6--remote & log
git 学习笔记6--remote & log 创建SSH Keys ssh-keygen -t rsa -C "1050244110@qq.com" 本地关联远程 git ...
- Git学习(4)基本操作
1.版本提交 首先,接着上个Git学习(3)继续 我们先修改test.txt文本内容,增加一些信息进去,然后保存: Add a new data 第一步:运行命令 git status 命令查看文件是 ...
- git学习(这个我没有整理,是我不断在学习的过程中,自己总结的,对象是我,不过有问题的,我们可以相互交流)
每次git提交,都会有一个parent指针,指向上一次的commit , 如果合并,master就和hotfix河道一起,就直接删除hotfix就OK 此时,虽然操作一样,大底层实现不一样 ...
- git学习笔记01-git最基本的工作原理分布式
git学习的网站 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 --廖雪峰老师 ...
随机推荐
- Cocos2d-x 3.x 图形学渲染系列十五
笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家.特邀编辑,畅销书作者,国家专利发明人;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D ...
- nodejs初步
nodejs是啥? 看名字,很容易认为它是一种开发语言,实质上,它更像是一种WEB服务器,一种工具.因为nodejs的作用,在于在服务器端解释.运行javascript.node.js本身不是开发语言 ...
- [水题]4242 果实计数&&3214 采访对象
4242 果实计数 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 淘淘家有棵奇怪的苹果树,这棵树共有n+1层 ...
- 02-JZ2440裸机学习之GPIO实验【转】
本文转载自:http://blog.csdn.net/fengyuwuzu0519/article/details/54910717 版权声明:本文为博主原创文章,转载请注明http://blog.c ...
- padding valid same区别——就是是否补齐0的问题
参考:https://stackoverflow.com/questions/37674306/what-is-the-difference-between-same-and-valid-paddin ...
- Anaconda 安装和使用Numpy、Scipy、pandas、Scikit-learn
Anaconda 安装和使用 https://www.cnblogs.com/liruihuan/p/9101613.html 最近看了些关于数据分析的书,想系统的整理下相关知识,算是学习笔记吧,也希 ...
- istio-禁用/允许sidecar设置
一.在namespace设置自动注入: 给 default 命名空间设置标签:istio-injection=enabled: $ kubectl label namespace default is ...
- E20170624-ts
stateless adj. 无国家的,无国籍的; groupware 群件 cookie n. 饼干; 小甜点; 吸引人的年轻妇女; 甜面包; session n. 开会,会议; (法庭的) 开 ...
- Java的安装过程
记录一下自己在Windowns下安装java的过程 安装网址:http://www.oracle.com/index.html 打开网址后要先登录,如果没有号就先注册,然后才能下载 step1:下载J ...
- 禁用backspace网页回退功能
<script language="JavaScript">document.onkeydown = check;function check(e) { var cod ...