命令从分支获取最新的git提交哈希

我怎样才能检查一个特定的git分支的最新提交散列的命令行?

使用git ls-remote git://github.com/<user>/<project>.git 。 例如,我的trac-backlog项目给出了:

 :: git ls-remote git://github.com/jszakmeister/trac-backlog.git 5d6a3c973c254378738bdbc85d72f14aefa316a0 HEAD 4652257768acef90b9af560295b02d0ac6e7702c refs/heads/0.1.x 35af07bc99c7527b84e11a8632bfb396823326f3 refs/heads/0.2.x 5d6a3c973c254378738bdbc85d72f14aefa316a0 refs/heads/master 520dcebff52506682d6822ade0188d4622eb41d1 refs/pull/11/head 6b2c1ed650a7ff693ecd8ab1cb5c124ba32866a2 refs/pull/11/merge 51088b60d66b68a565080eb56dbbc5f8c97c1400 refs/pull/12/head 127c468826c0c77e26a5da4d40ae3a61e00c0726 refs/pull/12/merge 2401b5537224fe4176f2a134ee93005a6263cf24 refs/pull/15/head 8aa9aedc0e3a0d43ddfeaf0b971d0ae3a23d57b3 refs/pull/15/merge d96aed93c94f97d328fc57588e61a7ec52a05c69 refs/pull/7/head f7c1e8dabdbeca9f9060de24da4560abc76e77cd refs/pull/7/merge aa8a935f084a6e1c66aa939b47b9a5567c4e25f5 refs/pull/8/head cd258b82cc499d84165ea8d7a23faa46f0f2f125 refs/pull/8/merge c10a73a8b0c1809fcb3a1f49bdc1a6487927483d refs/tags/0.1.0 a39dad9a1268f7df256ba78f1166308563544af1 refs/tags/0.2.0 2d559cf785816afd69c3cb768413c4f6ca574708 refs/tags/0.2.1 434170523d5f8aad05dc5cf86c2a326908cf3f57 refs/tags/0.2.2 d2dfe40cb78ddc66e6865dcd2e76d6bc2291d44c refs/tags/0.3.0 9db35263a15dcdfbc19ed0a1f7a9e29a40507070 refs/tags/0.3.0^{} 

只要grep你需要的一个,把它剪掉:

 :: git ls-remote git://github.com/jszakmeister/trac-backlog.git | \ grep refs/heads/master | cut -f 1 5d6a3c973c254378738bdbc85d72f14aefa316a0 

或者,您可以在命令行中指定所需的引用,并避免使用grep:

 :: git ls-remote git://github.com/jszakmeister/trac-backlog.git refs/heads/master | \ cut -f 1 5d6a3c973c254378738bdbc85d72f14aefa316a0 

注意:它不一定是git:// url,也可以是https://git@github.com:

git log -n 1 [branch_name] branch_name(可能是远程或本地分支)是可选的。 没有branch_name,它会显示当前分支的最新提交。

例如:

  git log -n 1 git log -n 1 origin/master git log -n 1 some_local_branch git log -n 1 --pretty=format:"%H" #To get only hash value of commit 

尝试使用git log -n 1做一个git checkout branchname 。 这显示了最新提交的提交哈希,作者,date和提交消息。

首先执行一个git pull origin/branchname ,确保你的本地repo与上游匹配。

如果也许你只想看到你的本地分支在远程分支上的提交列表,请执行以下操作:

 git fetch origin git cherry localbranch remotebranch 

这将列出您尚未合并到本地分支中的所有提交的哈希。

你可以git获取nameofremoterepo,然后git日志

并亲自,我的gitlog git log –graph –oneline –pretty –decorate –all。 试试看看它是否适合你

在你写的评论中

我想表明,本地和github回购有所不同

正如在另一个答案中已经提到的,你应该首先做一个git fetch origin 。 然后,如果远程在你当前的分支之前,你可以列出你的本地分支和远程之间的所有提交

 git log master..origin/master --stat 

如果您的本地分支在前面:

 git log origin/master..master --stat 

--stat显示更改的文件的列表。

如果你想显式地列出添加和删除,使用git diff

 git diff master origin/master 

请注意,使用“git log -n 1 [branch_name]”选项时。 -n只返回一行日志,但是返回的顺序不能保证。 以下是从git-log手册页中提取的

 ..... ..... Commit Limiting Besides specifying a range of commits that should be listed using the special notations explained in the description, additional commit limiting may be applied. Using more options generally further limits the output (eg --since=<date1> limits to commits newer than <date1>, and using it with --grep=<pattern> further limits to commits whose log message has a line that matches <pattern>), unless otherwise noted. Note that these are applied before commit ordering and formatting options, such as --reverse. -<number> -n <number> ..... .....