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
来撤销修改,回到没有开始操作合并之前的状态。
最新文章
- 7.8 数据注解特性--Column
- ASP 编码转换(乱码问题解决)
- Extjs中自定义事件
- jQuery - 实时统计输入框输入个数(中文输入法适用)
- Python 同时for遍历多个列表
- IL(Intermediate Language)
- 转账示例(二):service层面实现(本例采用QueryRunner来执行sql语句,数据源为C3P0)
- 转:Redis 配置为 Service 系统服务
- java关键字transient与volatile小结
- ZooKeeper数据结构
- suds库使用说明官方文档
- zookeeper 入门系列-理论基础 – zab 协议
- Spring Websocket实现简易在线聊天功能
- myEclipse出现cannot paste the clipboard contents into the selected elements报错
- 一维信号频谱图仿真——matlab
- source insight 中文乱码解决方法
- Linux查看运行时间
- Vue入门---属性、style和class绑定方法
- 巨蟒python全栈开发-第11阶段 devops-git&;&;openpyxl2
- 获得system32等系统文件权限