git 提交各种情况下的处理方式

自己总结:

01.若在提交过程中有冲突,解决冲突后,git add .

git rebase —continue

git push for

02.git rebase vs git merge

git rebase b (合并分支b)

解决冲突

git rebase —continue

git rebase —skip//跳过冲突

git rebase —absort//取消合并

1,在dev分支开发

git add .

git commit -am ‘‘

git pull —rebase //解决冲突

git push origin dev:refs/for/dev

2,线上线下测试

1) mvn debug on jetty

2) curl -H "***: ***" -H "***: ***"  ‘http://***/***/***?***=***&***=***‘

3,若commit之后想要返回

git log //查看需要退到哪个commitId之前

git reset commitId

git push

若git add .

git commit

git push

则几乎是把之前做的所有改动真的全部取消

4,若已经git reset —hard commitId

回到了上次改动的地方,

git pull将上次的改动再拉下来

git revert commitId

git commit

git push

git revert 是生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留

git reset 是回到某次提交,提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区

网上搜集的有用的实例:

A) 回滚add操纵

引用

$ edit                                     (1)

$ git add frotz.c filfre.c

$ mailx                                    (2)

$ git reset                                (3)

$ git pull git://info.example.com/ nitfol  (4)

B) 回滚最近一次commit

引用

$ git commit ...

$ git reset --soft HEAD^      (1)

$ edit                        (2)

$ git commit -a -c ORIG_HEAD  (3)

C) 回滚最近几次commit,并把这几次commit放到叫做topic的branch上去。

引用

$ git branch topic/wip     (1)

$ git reset --hard HEAD~3  (2)

D) 永久删除最后几个commit

引用

$ git commit ...

$ git reset --hard HEAD~3   (1)

E) 回滚merge和pull操作

引用

$ git pull                         (1)

Auto-merging nitfol

CONFLICT (content): Merge conflict in nitfol

Automatic merge failed; fix conflicts and then commit the result.

$ git reset --hard                 (2)

$ git pull . topic/branch          (3)

Updating from 41223... to 13134...

Fast-forward

$ git reset --hard ORIG_HEAD       (4)

F) 在被污染的working tree中回滚merge或者pull

引用

$ git pull                         (1)

Auto-merging nitfol

Merge made by recursive.

nitfol                |   20 +++++----

...

$ git reset --merge ORIG_HEAD      (2)

G) 被中断的工作流程

在实际开发中经常出现这样的情形:你正在开发一个大的feature,此时来了一个紧急的bug需要修复,但是目前在working tree中的内容还没有成型,还不足以commit,但是你又必须切换的另外的branch去fix bug。请看下面的例子

引用

$ git checkout feature ;# you were working in "feature" branch and

$ work work work       ;# got interrupted

$ git commit -a -m "snapshot WIP"                 (1)

$ git checkout master

$ fix fix fix

$ git commit ;# commit with real log

$ git checkout feature

$ git reset --soft HEAD^ ;# go back to WIP state  (2)

$ git reset                                       (3)

(H) Reset单独的一个文件

假设你已经添加了一个文件进入index,但是而后又不打算把这个文件提交,此时可以使用git reset把这个文件从index中去除。

引用

$ git reset -- frotz.c                      (1)

$ git commit -m "Commit files in index"     (2)

$ git add frotz.c                           (3)

(I) 保留working tree并丢弃一些之前的commit

假设你正在编辑一些文件,并且已经提交,接着继续工作,但是现在你发现当前在working tree中的内容应该属于另一个branch,与这之前的commit没有什么关系。此时,你可以开启一个新的branch,并且保留着working tree中的内容。

引用

$ git tag start

$ git checkout -b branch1

$ edit

$ git commit ...                            (1)

$ edit

$ git checkout -b branch2                   (2)

$ git reset --keep start                    (3)

时间: 2024-08-10 07:14:46

git 提交各种情况下的处理方式的相关文章

无网络情况下rpm方式安装

记录一下最近遇到的坑: 在无网络的情况下,rpm方式安装linux软件,遇到报nokey的错误,下载了好几个RPM-GPG-KEY都没有用,最后使用rpm -ivh *.rpm --force --nodeps命令解决问题. 下次好好研究下rpm命令 顺便记录下搜狐强大的mirror:http://mirrors.sohu.com/

windows下创建.gitignore文件(git提交时忽略某些文件)

相信大家在使用eclipse的git插件提交文件时,都会遇到这样一个问题:就是有可能不小心把不必要的文件也被提交了(如.project,.classpath文件或者.settings文件夹及其下面的文件等),那有没有办法把这些文件忽略掉呢? 方法很简单,就是在项目目录下新建.gitignore文件,然后在里面声明要忽略的文件夹或者文件就可以了.麻烦的地方来了,因为该文件是点开头,没有文件名,没办法直接在windows下创建.我们可通过安装Git,然后在项目根目录上右键选择"Git Bash He

MySQL分页优化中的“INNER JOIN方式优化分页算法”到底在什么情况下会生效?

本文出处:http://www.cnblogs.com/wy123/p/7003157.html 最近无意间看到一个MySQL分页优化的测试案例,并没有非常具体地说明测试场景的情况下,给出了一种经典的方案,因为现实中很多情况都不是固定不变的,能总结出来通用性的做法或者说是规律,是要考虑非常多的场景的,同时,面对能够达到优化的方式要追究其原因,同样的做法,换了个场景,达不到优化效果的,还要追究其原因.个人对此场景在不用情况表示怀疑,然后自己测试了一把,果然发现一些问题,同时也证实了一些预期的想法.

数据库高并发情况下重复值写入的避免 字段组合约束+ SQL SERVER 的SQL语句优化方式小结(转)

10线程同时操作,频繁出现插入同样数据的问题.虽然在插入数据的时候使用了: insert inti tablename(fields....) select @t1,@t2,@t3 from tablename where not exists (select id from tablename where [email protected],[email protected],[email protected]) 当时还是在高并发的情况下无效.此语句也包含在存储过程中.(之前也尝试线判断有无记

TCP Incast 问题TCP INCAST解决思路 应用场景:在集群文件系统内,客户端应用请求某个逻辑数据块(通常情况下一个读数据块大小是1MB),该数据块以条带化方式分别存储在几个存储服务器上,即采用更小的数据片存储(32KB,256KB等),这种小数据片称为服务器请求单元(SRU)。只有当客户端接收到所有的服务器返回的其所请求数据块的SRU后才继续发送出下一个数据块请求,即客户端同时向

TCP INCAST解决思路 应用场景:在集群文件系统内,客户端应用请求某个逻辑数据块(通常情况下一个读数据块大小是1MB),该数据块以条带化方式分别存储在几个存储服务器上,即采用更小的数据片存储(32KB,256KB等),这种小数据片称为服务器请求单元(SRU).只有当客户端接收到所有的服务器返回的其所请求数据块的SRU后才继续发送出下一个数据块请求,即客户端同时向多个存储服务器发起并发TCP请求,且所有服务器同时向客户端发送SRU. 出现的问题: 1)         这种多对一的服务器向客

Centos文本方式安装情况下lvm分区的创建

有些时候,安装centos,会进入文本方式下,而不是进入图形方式.原来一直认为在文本方式下作lvm分区会有限制(记得rhel官方文档里面也这么说.) 昨天,在linux系统管理区看到一个讨论,亲自做了一下实验,验证了可以在文本方式下创建lvm分区并且文本安装程序也可以识别lvm. 那个帖子的讨论过程,请移步http://bbs.chinaunix.net/thread-3758363-1-1.html www.2cto.com 下面把我整个实验的过程写出来,方便大家参考. 系统环境: vmwar

没有USB线连接PC的情况下,通过WIFI ADB的方式查看LOG信息

最近公司给了一项任务,APP需要手机外置一个USB摄像头,这下造成的问题就是,手机外置了其他USB设备后,手机不能与PC连接,也就不能在PC端通过Eclipse等查看Log信息,调试起来特别麻烦,因为即使程序蹦了,你看不到Log也不知道程序崩溃的原因. 正好有一个同事是搞linux底层的,他说可以通过wifi adb的方式来查看log.意思就是手机通过wifi与PC端处于同一网段内,然后用adb命令远程连接手机,然后就可以无线查看手机端的log信息了. 这种方式需要一个必要条件: 手机端要与PC

@Java web程序员,在保留现场,服务不重启的情况下,执行我们的调试代码(JSP 方式)

一.前言 类加载器实战系列的第六篇(悄悄跟你说,这篇比较水),前面5篇在这里: 实战分析Tomcat的类加载器结构(使用Eclipse MAT验证) 还是Tomcat,关于类加载器的趣味实验 了不得,我可能发现了Jar 包冲突的秘密 重写类加载器,实现简单的热替换 @Java Web 程序员,我们一起给程序开个后门吧:让你在保留现场,服务不重启的情况下,执行我们的调试代码 最近事不算多,所以有点时间写博客,昨天写着写着,测试的同学反馈说有一个bug.我看了下服务端日志,空指针了: 下面会给出详细

数据库有百万数据量的情况下,分页查询的方法及其优化方式

当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询.对于数据库分页查询,也有很多种方法和优化的点. 下面简单说一下我知道的一些方法. 准备工作 为了对下面列举的一些优化进行测试,下面针对已有的一张表进行说明. 表名:order_history 描述:某个业务的订单历史表 主要字段:unsigned int id,tinyint(4) int type 字段情况:该表一共37个字段,不包含text等大型数据,最大为varch