从Github提取更改的正确方法?

时间:2019-09-12 11:01:18

标签: git github terminal local

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

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

在本地计算机上使用“ git pull feature1”就足够了吗?

我本以为您可以先通过Bitbucket按下“合并”按钮,然后再将“ git pull origin master”拖放到本地,但是无法事先检查代码,因此看起来不正确。

再次,如果这是一个初学者的问题,我表示歉意。只是希望有些清晰。预先感谢。

3 个答案:

答案 0 :(得分: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可以是您喜欢的任何其他名称,只要它是有效的引用名称即可。

答案 1 :(得分:1)

有时候拉取请求是来自fork的,为了获得它们,您必须像这样那样提供fork的url

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

如果一切顺利,那么您的'feature1'分支具有所有更改,因此您现在可以

git diff master

查看主请求和请求请求之间的区别,如果喜欢,可以将其合并到主请求中,如下所示:

git checkout master
git merge feature1

就这样...希望对您有帮助

答案 2 :(得分:0)

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

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