繁体   English   中英

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

[英]Proper Way to Pull Changes from Github?

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

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

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

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

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

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

git fetch origin pull/29/head:p29

然后通过以下方式将其与master进行比较:

git diff master p29

如果您使用的是git GUI客户端或用户友好的difftool,则可以通过一种更加愉悦的方式查看两个分支之间的差异。

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

git branch -D p29

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

有时,pull请求来自fork,要获取它们,您必须像这样执行,提供fork的url。

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

如果一切顺利,您的'feature1'分支将进行所有更改,因此现在您可以

git diff master

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

git checkout master
git merge feature1

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM