获取另一个分支git的最新提交(不检查)

时间:2017-03-09 09:11:52

标签: git

假设我在分支dev上,我想查看master上的最新提交而不更改它。

我只是想做某些命令,然后能够看到master上的提交,例如git log mastergitk master

什么是某些命令

如何从主远程获取最新提交而不检查主数据然后执行git pull

6 个答案:

答案 0 :(得分:4)

无论您首先要运行git fetch。这不会更改分支的本地副本。它将fetch来自当前remote的更改,可以在origin/master等虚拟分支中引用。

然后,您可以使用参考origin/master查看任意分支上的更改,而无需在master上进行更改

您想要的命令是:

git log origin/master

答案 1 :(得分:2)

使用git fetch

(避免git pull,这只是git fetch,然后是第二个Git命令。第二个命令默认为git merge,但你可以告诉Git使用git rebase代替。)

fetch命令实际上是提交的。然后,您可以通过远程跟踪分支名称来命名,例如origin/master。这些是你的 Git用来记住它在其他(远程)Git上看到的内容的名称,它最后一次与其他Git交谈。您的git fetch看到他们有master,因此将其提交复制到您的存储库并使用名称origin/master来记住它们。

提交后,git log origin/mastergitk origin/master(或gitk --all或许多其他变体)会让您查看。

我最喜欢的别名之一是incoming / lin

[alias]
    incoming = log --oneline ..@{u}
    lin = log ..@{u}

使用此别名,git incoming显示当前分支的上游上的提交。例如,master的上游通常为origin/master,因此这会显示origin/master上不在master上的提交。 --oneline将它们分别收集到一行主题。通常我希望看到更多内容,因此较短的lin(Log INcoming)会在没有--oneline的情况下显示它们。

答案 2 :(得分:0)

  

如何从master远程获取最新提交而不检查master然后执行git pull?

您可以执行以下操作:

# update internal git repository data 
git fetch

# now add any desired commit from any branch to your current branch (any)
git cherry-pick <sha1>

如果您只想查看日志而不是向分支添加任何提交,只需使用:

git fetch --all --prune
git log --all --oneline --decorate --graph 

enter image description here

答案 3 :(得分:0)

要查看您可以运行的所有分支的所有提交

<script>
  (function() {
    var cx = 'someurl';
    var gcse = document.createElement('script');
    gcse.type = 'text/javascript';
    gcse.async = true;
    gcse.src = 'someurl' + cx;
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(gcse, s);
  })();
</script>

答案 4 :(得分:0)

这似乎工作正常:

git fetch origin master:master

答案 5 :(得分:0)

正如其他答案所述,git fetch是要走的路。

之后,我建议使用gitk查看其他分支的提交,使用gitk <branchname>查看特定分支,或gitk --all查看所有分支及其分支各自的承诺。