我将以我是新手这一事实作为开头,而我只是想得到一个明确的答案,因为当我上网寻求帮助时感到困惑。也就是说,这是我的问题:
如果有人提交了拉取请求,那么在与master合并之前,如何将这些更改拉到本地计算机上进行审查?假设该分支被命名为 feature1 。
在本地计算机上使用“ git pull feature1”就足够了吗?
我本以为您可以先通过Bitbucket按下“合并”按钮,然后再将“ git pull origin master”拖放到本地,但是无法事先检查代码,因此看起来不正确。
再次,如果这是一个初学者的问题,我表示歉意。只是希望有些清晰。预先感谢。
答案 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的功能分支,通常最好使用以下步骤:
git merge --no-ff master
之类的功能分支中。没有快进可以确保您不会丢失日志中的单个提交。