当前位置:  开发笔记 > 开发工具 > 正文

如何在不进行提取的情况下预览git-pull?

如何解决《如何在不进行提取的情况下预览git-pull?》经验,为你挑选了4个好方法。

它甚至可能吗?

基本上,我只使用一个远程存储库:

git pull

现在,我想预测这种拉动会改变什么(差异),而不会触及我身边的任何东西.原因是我拉的东西可能不是"好",我希望其他人在使我的存储库"脏"之前修复它.



1> Greg Hewgill..:

执行a之后git fetch,执行a git log HEAD..origin/master以显示上次常见提交与origin的主分支之间的日志条目.要显示差异,请使用git log -p HEAD..origin/master以显示每个色块,或者git diff HEAD...origin/master(三个点而不是两个)来显示单个差异.

通常有没有任何需要撤消取,因为做一个只获取更新远程分支,没有的你的分支机构.如果您不准备在所有远程提交中进行拉取和合并,则可以使用git cherry-pick仅接受所需的特定远程提交.之后,当您准备好获取所有内容时,git pull将在其余提交中合并.

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



2> Brian Gianfo..:

我认为git fetch是你想要的.

它会提取更改和对象,而不会将它们提交到本地repo的索引.

它们可以稍后与git merge合并.

男人页

编辑:进一步的Explination

直接从Git-SVN Crash Course 链接

现在,您如何从远程存储库获得任何新的更改?你拿到它们:

git fetch http://host.xz/path/to/repo.git/ 

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

git log origin 

您还可以区分更改.您还可以使用git log HEAD..origin来查看分支中没有的更改.那么如果想合并它们 - 只需:

git merge origin

请注意,如果您未指定要提取的分支,则它将方便地默认为跟踪远程.

阅读手册页老实说是为了让您最好地了解选项以及如何使用它.

我只是想通过例子和记忆来做到这一点,我目前没有一个盒子可以测试.你应该看看:

git log -p //log with diff

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



3> Antonio Bard..:

您可以从远程仓库中获取,查看差异,然后拉取或合并.

这是一个被调用的远程仓库origin和一个名为master跟踪远程分支的分支的示例origin/master:

git checkout master                                                  
git fetch                                        
git diff origin/master
git pull --rebase origin master



4> Matthias..:

我创建了一个自定义git别名来为我做这件事:

alias.changes=!git log --name-status HEAD..

你可以这样做:

$git fetch
$git changes origin

这将为您提供一种在执行之前预览更改的简便方法merge.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有