2

因此,当我创建并切换到一个新的非 MASTER 分支时,我再也看不到未推送的提交列表。我想这是有道理的,因为我在一个分支上,而 MASTER 现在是我的上游(而不是 github)?

尽管如此,我还是希望能够看到我今天所做的所有提交。

如何查看我在本地分支上所做的所有尚未与 MASTER 合并的提交?

好的,鉴于此,我如何配置 magit 以便每当我在分支上输入M-x magit-status时,我都会看到我在该分支上所做的未合并提交列表?看起来与我在 MASTER 上时的情况相似,然后我输入M-x magit-status,我得到了所有未推送提交的列表?

当我在树枝上时,基本上空的 magit-status 缓冲区让我感到紧张。:)

4

2 回答 2

2

如果您的分支正在跟踪远程分支,您将自动拥有它。

如果没有,并且您对大师感兴趣,您可以使用下面的代码。每当您的提交不在 master 中时,此代码将为您的 magit-status 添加一个新部分“未合并的提交”。

(eval-after-load 'magit
  '(progn
     (defun magit-insert-unmerged-commits ()
       (magit-git-insert-section (unmerged "Unmerged commits:")
                                 (apply-partially 'magit-wash-log 'unique)
                                 "log" "--format=format:%h %s" "master..HEAD"))

     (magit-define-section-jumper unmerged  "Unmerged commits")

     (add-hook 'magit-status-sections-hook 'magit-insert-unmerged-commits t)))

您将需要 magit 2.0 或更高版本。

如果您对未合并到 master 的提交不感兴趣,但对您分支分支的本地分支不感兴趣,您将需要进一步自定义上述代码(我硬编码“master”)。

于 2014-07-03T08:00:26.110 回答
0

如果您只想查看未推送的提交,请添加

(setq magit-set-upstream-on-push t)

到您的初始化文件中,magit 会在推送时询问您是否要设置上游- 只需在您第一次推送时输入“是”,您将不会再被询问。然后,您将看到未推送的提交。

文档magit-set-upstream-on-push

推送分支时是否可以设置“magit-push”上游。这仅适用于分支还没有上游集的情况。

nil 不要使用--set-upstream。

t 询问是否应该使用--set-upstream。

`dontask' 总是使用 --set-upstream。

`refuse' 拒绝推送,除非已经设置了远程分支。

于 2015-02-10T16:39:01.947 回答