【问题标题】:Proper Way to Pull Changes from Github?从 Github 中提取更改的正确方法?
【发布时间】:2019-09-12 11:01:18
【问题描述】:

我会以我是新手的事实作为这个问题的开头,我只想得到一个明确的答案,因为当我上网寻求帮助时我很困惑。也就是说,这是我的问题:

如果有人提交拉取请求,我如何将这些更改拉取到我的本地计算机以在与 master 合并之前进行审查?假设分支名为 feature1

我的本​​地机器上的“git pull feature1”就足够了吗?

我在想你可以通过 bitbucket 点击“Merge”按钮,然后点击“git pull origin master”到本地,但是没有办法事先检查代码,所以这看起来不对。

再次,如果这是一个非常初学者的问题,我深表歉意。只是希望澄清一些。提前致谢。

【问题讨论】:

    标签: git github terminal local


    【解决方案1】:

    拉取请求是refs/pull/<number>/head 格式的特殊引用。假设有一个拉取请求#29。您可以通过以下方式获取它并在本地存储库中为它创建一个本地分支p29

    git fetch origin pull/29/head:p29
    

    然后将其与master 比较:

    git diff master p29
    

    如果您使用的是 git GUI 客户端或用户友好的 difftool,您可以更愉快地查看两个分支之间的差异。

    审核完成后,您可以通过以下方式删除p29

    git branch -D p29
    

    p29 可以是您喜欢的任何其他名称,只要它是有效的参考名称即可。

    【讨论】:

      【解决方案2】:

      有时拉取请求来自分叉,为了获得它们,您必须像这样做一样提供分叉的网址

      git checkout master
      git checkout -b feature1
      git pull 'https://github.com/user/username/fork.git' feature1
      

      如果一切顺利,您的 'feature1' 分支已完成所有更改,所以现在您可以

      git diff master
      

      要查看 master 和 pull request 之间的区别,如果您喜欢,可以将其合并到 master 中,如下所示:

      git checkout master
      git merge feature1
      

      就是这样……希望对你有帮助

      【讨论】:

        【解决方案3】:

        通常情况下,最好使用以下步骤,考虑到您有一个 master 分支和一个需要合并到 master 的 feature 分支:

        1. 在您的功能分支中,确保您提交了所有本地更改。
        2. 从遥控器中拉出功能分支。这将确保如果其他人使用该功能,您不会错过这些更改。如果有冲突,请解决冲突,并测试您的功能分支是否仍然有效(应用程序)。
        3. 从远程拉取主分支。
        4. 将您的主分支合并到您的功能分支,例如git merge --no-ff master。没有快进可确保您不会丢失日志中的单个提交。
        5. 您的功能分支现在等于您希望成为主分支的内容:主分支已合并到功能中,您现在可以在本地测试一切是否正常。
        6. 如果您对结果满意,可以将功能分支推送到远程。
        7. 在远程,您可以创建一个拉取请求以将您的功能合并到主分支。因为您在步骤 5 中测试了您的代码 + 合并,所以您可以确定 master 分支会没事的。拉取请求现在仅用于审查代码。你已经测试过了。

        【讨论】:

          猜你喜欢
          • 2015-05-21
          • 2011-06-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多