首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不做fetch的情况下预览git-pull?

如何在不做fetch的情况下预览git-pull?
EN

Stack Overflow用户
提问于 2008-10-08 04:30:31
回答 8查看 129.6K关注 0票数 227

这有可能吗?

基本上,有一个远程存储库,我使用以下命令从其中提取:

代码语言:javascript
复制
git pull

现在,我想在不接触我的任何东西的情况下预览一下这个拉力会发生什么变化(一个差异)。原因是我拉取的东西可能不是“好的”,我希望别人在让我的存储库“脏”之前修复它。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2008-10-07 20:53:19

在执行git fetch之后,执行一个git log HEAD..origin/master以显示您最后一次公共提交和源的主分支之间的日志条目。要显示差异,请使用git log -p HEAD..origin/master显示每个面片,或使用git diff HEAD...origin/master (三个点而不是两个)显示单个差异。

通常不需要撤消fetch,因为执行fetch只会更新远程分支,而不会更新任何分支。如果您不准备在所有远程提交中执行拉和合并,则可以使用git cherry-pick仅接受您想要的特定远程提交。稍后,当您准备好获取所有内容时,git pull将合并到其余的提交中。

更新:我不完全确定为什么你要避免使用git fetch。所有git fetch所做的就是更新远程分支的本地副本。这个本地副本与您的任何分支都没有任何关系,也与未提交的本地更改没有任何关系。我听说过有人在cron作业中运行git fetch,因为它非常安全。(不过,我通常不建议这样做。)

票数 267
EN

Stack Overflow用户

发布于 2008-10-07 20:45:41

我想git fetch就是你要找的。

它将拉取更改和对象,而不将它们提交到本地存储库的索引中。

它们可以在以后使用git merge进行合并。

Man Page

编辑:进一步探索

直接从Git- SVN速成课程 link

现在,您如何从远程存储库获取任何新的更改?您可以获取它们:

git获取http://host.xz/path/to/repo.git/

此时,它们位于您的存储库中,您可以使用以下命令来检查它们:

git日志来源

您还可以比较这些更改。您还可以使用git log HEAD..origin来查看您的分支中没有的更改。然后,如果想要合并它们-只需执行以下操作:

git合并原点

请注意,如果您没有指定要获取的分支,它将方便地缺省为跟踪遥控器。

老实说,阅读手册页将使您对选项以及如何使用它有最好的理解。

我只是试着通过例子和内存来做这件事,我目前还没有一个盒子来测试。您应该查看以下内容:

代码语言:javascript
复制
git log -p //log with diff

可以使用git reset --hard (link)撤消获取,但是树中所有未提交的更改以及您获取的更改都将丢失。

票数 51
EN

Stack Overflow用户

发布于 2011-03-21 19:02:03

您可以从远程存储库获取,查看差异,然后拉取或合并。

这是一个名为origin的远程存储库和一个名为master的分支跟踪远程分支origin/master的示例

代码语言:javascript
复制
git checkout master                                                  
git fetch                                        
git diff origin/master
git pull --rebase origin master
票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/180272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档