Git中使用amend解决提交冲突
2017-03-21 12:06
323 查看
问题描述
场景:当你提交的时候,发现跟要合并的流有冲突,你需要解决完冲突再次提交。 如果在SVN时代,你可以直接在本地解决完冲突再提交就可以了,因为SVN会把正确的代码先提交到服务器,至于有冲突的代码,你需要在本地解决完冲突再提交。
但在Git中这样做行不通,Git中每次提交都是完整的,也就是说,即使你这次提交有中冲突的代码,它也一并会推送到要合并的流,每次提交会有一个change_id,当你解决完冲突提交后,这个change_id又会发生变化。这样导致的直接后果是:由于Git是由提交的先后顺序依次合并,因为第一次合并有冲突,后面所有的合并动作都会挂起。这显然不是我们想看到的。但如果解决问题前和解决问题后的change_id不变,这样对于Git来说,则相当于一次提交,这样就可以解决提交冲突的问题了。
解决方案
Git的amend命令支持commit时不修改change_id,命令是:git commit --amend。
场景:当你提交的时候,发现跟要合并的流有冲突,你需要解决完冲突再次提交。 如果在SVN时代,你可以直接在本地解决完冲突再提交就可以了,因为SVN会把正确的代码先提交到服务器,至于有冲突的代码,你需要在本地解决完冲突再提交。
但在Git中这样做行不通,Git中每次提交都是完整的,也就是说,即使你这次提交有中冲突的代码,它也一并会推送到要合并的流,每次提交会有一个change_id,当你解决完冲突提交后,这个change_id又会发生变化。这样导致的直接后果是:由于Git是由提交的先后顺序依次合并,因为第一次合并有冲突,后面所有的合并动作都会挂起。这显然不是我们想看到的。但如果解决问题前和解决问题后的change_id不变,这样对于Git来说,则相当于一次提交,这样就可以解决提交冲突的问题了。
解决方案
Git的amend命令支持commit时不修改change_id,命令是:git commit --amend。
相关文章推荐
- 1git命令的使用,查看git仓库状态,添加文件到git跟踪,git提交,查看git分支,查看git仓库日志信息,切换git分支,解决git分支合并后出现冲突的问题
- Android Studio如何使用Git提交代码到GitHub和OsChina并解决冲突
- Android Studio如何使用Git提交代码到GitHub和OsChina并解决冲突
- Android Studio如何使用Git提交代码到GitHub和OsChina并解决冲突
- 1git命令的使用,查看git仓库状态,添加文件到git跟踪,git提交,查看git分支,查看git仓库日志信息,切换git分支,解决git分支合并后出现冲突的问题
- Android Studio如何使用Git提交代码到GitHub和OsChina并解决冲突
- Eclipse上GIT插件EGIT使用手册之八_解决推送冲突
- 解决windows下使用vc-git提交中文注释乱码的问题
- Eclipse上GIT插件EGIT使用手册之八_解决推送冲突
- Eclipse上GIT插件EGIT使用手册--解决推送冲突
- Git Patch使用: 生成,导入,解决冲突
- Git的使用十二(解决冲突)仅限Mac亲测
- Eclipse上GIT插件EGIT使用手册之八_解决推送冲突
- Eclipse上GIT插件EGIT使用手册之八_解决推送冲突
- Eclipse中使用SVN插件Subclipse - 提交、更新、解决冲突、合并
- 使用git pull文件时和本地文件冲突怎么解决
- Git使用遇到的问题--merge冲突解决
- 正确使用git避免提交冲突
- 正确使用git避免提交冲突
- git 的使用(5)-git的分支管理以及合并冲突解决