这有可能吗?
基本上,有一个远程存储库,我使用以下命令从其中提取:
git pull现在,我想在不接触我的任何东西的情况下预览一下这个拉力会发生什么变化(一个差异)。原因是我拉取的东西可能不是“好的”,我希望别人在让我的存储库“脏”之前修复它。
发布于 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,因为它非常安全。(不过,我通常不建议这样做。)
发布于 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合并原点
请注意,如果您没有指定要获取的分支,它将方便地缺省为跟踪遥控器。
老实说,阅读手册页将使您对选项以及如何使用它有最好的理解。
我只是试着通过例子和内存来做这件事,我目前还没有一个盒子来测试。您应该查看以下内容:
git log -p //log with diff可以使用git reset --hard (link)撤消获取,但是树中所有未提交的更改以及您获取的更改都将丢失。
发布于 2011-03-21 19:02:03
您可以从远程存储库获取,查看差异,然后拉取或合并。
这是一个名为origin的远程存储库和一个名为master的分支跟踪远程分支origin/master的示例
git checkout master
git fetch
git diff origin/master
git pull --rebase origin masterhttps://stackoverflow.com/questions/180272
复制相似问题