团队开发-git处理冲突和git diff生成差异文件

一、在git团队开发中,因为多人提交,经常会出现冲突的情况,处理冲突一般都以下方案:

(1)eclipse项目中,先把冲突的代码拷贝到桌面上,然后通过eclipse里面自带的还原工具将代码还原后更新服务器的版本下来,再合入自己的修改,此方法在维护版本中计较好用,但开发版本中,因为提交的文件多会增加很多的工作量。

(2)使用命令处理:git stash将修改存到缓冲区;git pull更新服务器提交;git stash pop将修改从缓冲区取出,并且新的文件git add一下,避免出现冲突符合,剩下的就是删除一些乱码报错的小问题。当前eclipse本事也有通过UI进行处理功能,想了解更多自己去探索吧。

二、生成差异文件

(1)没提交前使用git diff >a.diff保存文件即可

(2)提交后生成与上一记录差异文件

 1)先git log 查看提交记录

2)git diff xxx(上一结点提交) >d.diff

修改最后一次提交注释的,利用–amend参数

 git commit --amend

忘记提交某些修改,下面的三条命令只会得到一个提交。 

  1. git commit –m "add readme.txt"

  2. git add readme_forgotten

  3. git commit –amend

假设你已经使用git add .,将修改过的文件a、b加到暂存区

现在你只想提交a文件,不想提交b文件,应该这样

git reset HEAD b

取消对文件的修改 

git checkout –- readme.txt

git commit后,如何撤销commit

修改了本地的代码,然后使用:

git add file
git commit -m '修改原因'

执行commit后,还没执行push时,想要撤销这次的commit,该怎么办?

解决方案:
使用命令:

git reset --soft HEAD^

这样就成功撤销了commit,如果想要连着add也撤销的话,--soft改为--hard(删除工作空间的改动代码)。

命令详解:

HEAD^ 表示上一个版本,即上一次的commit,也可以写成HEAD~1
如果进行两次的commit,想要都撤回,可以使用HEAD~2

--soft
不删除工作空间的改动代码 ,撤销commit,不撤销git add file

--hard
删除工作空间的改动代码,撤销commit且撤销add

另外一点,如果commit注释写错了,先要改一下注释,有其他方法也能实现,如:

git commit --amend
这时候会进入vim编辑器,修改完成你要的注释后保存即可

撤销git reset soft head操作 

一不小心在eclipse的git库中执行了Reset Soft(HEAD ONLY)操作,不料界面中竟然没有找到撤销方法(于是心中五味俱全,经过一番折腾,无果还是回归Git本身),最终通过命令行,很快搞定撤销了,其实有2种方法可以还原。

方法一:

1.先通过git reflog找到上一次的历史提交记录id,git如果没有特意设置,是会保存记录一段时间的(a few days or a month)

2.git reset --hard [id]

方法二:

git reset --hard HEAD@{1}

直接回到刚才的那个结点,{}中表示的是结点的序号

推荐大家使用第一种,因为第一种更安全;不过我是结合了使用了他们:先使用第一种方法中reflog命令查看无误后使用第二种书写起来更简单的命令。

git add 如何撤销

git reset HEAD

repo forall可以遍历每个repo仓库并执行同样的命令

在大系统仓库代码统一切到某个分支:repo forall -c 'pwd && git checkout -t remotes/sunniwell/develop_tc'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值