前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git实用技巧 pull request修改

Git实用技巧 pull request修改

作者头像
twowinter
发布2020-04-17 11:33:46
3.3K0
发布2020-04-17 11:33:46
举报
文章被收录于专栏:twowintertwowinter

1 问题描述

在 github 上提交了一个 pull request,在作者进行操作前,发现自己某处错了,进行了修改。

这时是关闭这条 pull request 重新发一条,还是有什么操作可以覆盖这次发送的 pull request?

2 解决方案

push 更新那个分支就行,pull request只和分支名绑定。

直接 push 就会自动追加到到 PR 后面。当然,如果你不希保留旧的 commit 记录,还可以选择本地 git reset 之后 push -f 强行覆盖掉你远程的commit,PR会一并更新。

3 测试实例

本能手用 gitee 做了下测试。

3.1 准备工作

twowinter创建了1个仓库: https://gitee.com/twowinter/practice/

doublewinter fork 了这个仓库: https://gitee.com/doublewinter/practice/

3.2 doublewinter 新增了一个笔记,发起了pull request

1.新建 double_note.txt,里面写1,push1个commit

代码语言:javascript
复制
git add double_note.txt
git commit -a -m 'add 1'
git push -u origin master

3.3 doublewinter 后悔了,其实想写入2

1.回退版本到之前的一个版本

代码语言:javascript
复制
git reset HEAD~1

2.修改 txt,里面写2,重新commit

代码语言:javascript
复制
git add double_note.txt
git commit -a -m 'add 2'

3.强制push这个新的commit

此时如果你 git push,会有错误提示,因为远程版本库还是commit 1的内容。

代码语言:javascript
复制
$ git push -u origin master
To https://gitee.com/doublewinter/practice.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://gitee.com/doublewinter/practice.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

因此需要强制push。

代码语言:javascript
复制
git push -f

这时去twowinter那边,可以看到pull request 也同步到这个新的commit了,原来的内容1没了。

4 github实战 - AliOS

好了,自己内部测试好了之后,就可以到github上实战了。

最近有个项目用到了 AliOS 的 SAL,发现在驱动 BC95 时,数据发送没有传递到AT命令接口。这是华为 Boudica 120 封装了发送时才指定目的地址信息的AT命令,导致市面上基于该芯片的方案都采用了这种方式。

于是本能手就很激动地提交了pull request,但由于SAL代码仅在项目代码中用到,提交中出现了两次编译的低级错误。

为了让我的PR的代码尽量直观,避免干扰别人对这个PR的查看。我想要重新整理下这个commit。

第一步,回退两个版本。

代码语言:javascript
复制
$ git reset HEAD~2
Unstaged changes after reset:
M       device/sal/sal_sockets.c

第二步,修改正确的代码,并提交。

第三步,强制提交。

代码语言:javascript
复制
$ git push -f
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 676 bytes | 676.00 KiB/s, done.
Total 5 (delta 4), reused 0 (delta 0)
remote: Resolving deltas: 100% (4/4), completed with 4 local objects.
To https://github.com/twowinter/AliOS-Things.git
 + 557b9189...32e7c038 master -> master (forced update)

回到网页上,刷新瞧一瞧,果真修改掉了。

End

That’s all

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 问题描述
  • 2 解决方案
  • 3 测试实例
    • 3.1 准备工作
      • 3.2 doublewinter 新增了一个笔记,发起了pull request
        • 3.3 doublewinter 后悔了,其实想写入2
        • 4 github实战 - AliOS
        • End
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档