欢迎关注,获得最新文章。
欢迎转发,传播最新技术。
Git作为目前最先进的分布式版本控制系统,相信你也在使用。有了它,再也不用担心代码丢失,而且可以任性的在不同版本间穿梭,大大提高了团队开发效率。
好马配好鞍,好鞍配好马,这里优秀的工具,同样也需要优秀的使用者。当你抱怨git不好的时候,那就说明你该认真的学习git命令了,沉下心思去理解常用命令。
再介绍一个工具Gerrit,某些公司使用它作为代码审查软件,团队成员可以相互审阅(review)彼此程序代码,决定是否能够提交,退回或者继续修改。
问题
如果你们团队也在使用Gerrit,那么你可能会碰到下面这个问题:! [remote rejected] HEAD -> refs/for/1.7.82 (change 17384 closed),error: failed to push some refs to 等等等。
原因
原因是上次提交(commit)的内容,在Gerrit上被抛弃(abandoned)了
解决办法
删除(drop)被抛弃(abandoned)的那个提交(commit)。
1. git log
- 查看提交(commit)历史
commit 2f55a8f7062a5cb0a4de758921b3f266421c0ad3 (HEAD -> 1.7.82)
opt周年庆:1.添加光分现金html/img;2.调试获取用户状态接口;3.调试获取获奖用户接口;4.完成数据展示。
Change-Id: Id031ddcba7ba5acd561836b9920e11f198dcc6a3
commit f227f92ebd969b2168445349db34fa65b09b0238
opt周年庆活动:1.添加首页html/css/js
Change-Id: I4ecb7b562b4cca6098432ab1d7d2b18e74774f0d
commit 3b2451b275ba4665cd8ac670f7bd8d1bd4335011 (origin/1.7.82)
Merge remote-tracking branch 'origin/master' into 1.7.82
Change-Id: I198a923cafd4e6a4cc46e9cd1e42b28b952ebf87
- 加黑字体部分代表已经被抛弃(abandoned)的提交(commit),我们要做的就是删除这个提交。
2. git rebase -i I198a923cafd4e6a4cc46e9cd1e42b28b952ebf87
- I198a923cafd4e6a4cc46e9cd1e42b28b952ebf87,是即将要被删除(drop)的提交(commit)的上一个提交(commit),这里不要搞错!!!
- 进入到提交信息编辑页面
- 加黑字体部分代表即将要被删除(drop)的提交(commit)
pick f227f92eb opt周年庆活动:1.添加首页html/css/js
pick 2f55a8f70 opt周年庆:1.添加光分现金html/img;2.调试获取用户状态接口;3.调试获取获奖用户接>口;4.完成数据展示。
3. 输入字母"i",进入编辑模式
- 将 pick f227f92eb opt周年庆活动:1.添加首页html/css/js,修改为 drop f227f92eb opt周年庆活动:1.添加首页html/css/js
drop f227f92eb opt周年庆活动:1.添加首页html/css/js
pick 2f55a8f70 opt周年庆:1.添加光分现金html/img;2.调试获取用户状态接口;3.调试获取获奖用户接>口;4.完成数据展示。
4. 按下 shift + esc 键,退出编辑模式
5. 按下 shifit + : 键
6. 输入"wq",按下enter键,保存并退出编辑器
7. 提示Successfully rebased and updated refs/heads/1.7.82.
代表删除commit成功
8. 可以使用git log查看是否删除成功
9. git push origin HEAD:refs/for/1.7.82
10. 提示* [new branch] HEAD -> refs/for/1.7.82
代表提交成功
结语
Git提交项目遇到问题时,删工程绝对不是最佳解决办法,而是要查找权威资料,或者咨询资深工程师,深入理解git命令,要巧用git,才能事半功倍。