【问题标题】:Git look behind commitsGit 查看提交
【发布时间】:2014-01-28 06:56:03
【问题描述】:

我的项目结构很简单。简而言之,我从本地机器上推送了一些提交,转到主服务器并使用pull 进行所有更改。

我总是在拉之前做git status。而且我总是有这样的图片:

On branch 6.0-rfc 
Your branch is behind 'origin/6.0-rfc ' by 5 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)

我做 git pull 一切都很好。

但是,我如何查看这 5 个提交,例如,谁提交、更改了哪些文件等等?

【问题讨论】:

  • 在完成pull之后运行git log
  • 是的,我可以做到,但只有在 pull 之后,但我有一种情况,我需要查看之前的所有这些提交
  • 知道了。你会想要fetch,而不是使用pull。看我的回答。

标签: git github


【解决方案1】:

要在合并前检查提交(由 git pull 自动完成),请发出 git fetch,然后检查由 fetch 更新的分支的 HEAD(可能是 origin/master)。


如果您遵循标准分支命名约定(例如,master 用于本地,origin 用于远程),您的新工作流程可能如下所示:

git fetch origin  # Fetch all commits on the remote side, don't merge to master
git log origin/master  # Inspect the commits on origin's master
git merge origin/master  # Merge the commits into your local branch

在拉取后检查时,您可能还会发现使用commit ranges 很有帮助。要仅查看源的 master 分支将添加到本地 master 的提交:

git log master..origin/master

【讨论】:

  • 工作日放假,我会检查并写。
  • 最后两个命令应该是git log origin/mastergit merge origin/master
  • @Ash- 抱歉,我假设分支跟踪 masterorigin,所以 merge 与斜线或不带斜线是等价的(参见 "Ramifications of forgetting slash in “git merge origin/branch”)。不过,我已将命令更改为更明确。
  • 哦,有趣!我见过很多人不小心忘记了斜线而创建了“原点”分支等等;我不知道 git 会这样推断。 (那时我们可能也使用了较旧的 git 版本。)
  • git log master..origin/master 是我真正需要的!!谢谢!!
猜你喜欢
  • 2011-01-02
  • 1970-01-01
  • 2012-02-21
  • 2013-07-07
  • 2011-01-14
  • 2013-11-15
  • 2016-06-27
  • 1970-01-01
  • 2021-02-27
相关资源
最近更新 更多