如何查看'只有那些提交'自克隆回购以来添加了哪里?

时间:2017-06-02 14:59:45

标签: git github

我克隆了一个git存储库

git clone xyz.git
  1. 我 修改了一个文件(例如' a.txt'),在本地添加并提交。
  2. 同样,我修改了一个文件(比如说' b.txt'),在本地添加并提交了它。
  3. 我没有将更改推送到远程
  4.   

    git日志生成整个提交列表。

    我想只查看自克隆存储库以来添加的提交。

    有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:1)

“克隆后”很难甚至不可能,这取决于您在克隆后立即保存的信息,或者自那时起已经存在多长时间。但它也不是有用的,所以它有多困难并不重要:“自克隆以来”是一个错误的问题。 (对于一个非常有缺陷的类比,想象一下试图抓住逃脱的动物。有趣的问题不是三周前的地方,而是现在的地方。)

如果你有一个简短的名字,比如origin,对于另一个有另外一个包含提交的Git存储库的网址 - 有趣的问题不是我有什么,他们有当我跑git clone时没有回来?而是我有什么他们没有我最后一次看到他们有什么 是Git会回答的一个问题,因为你的Git会在你的存储库中记录你上次连接它们时所记录的内容。

如果您的Git从他们的分支master获得了分支master,那么您的Git也会记住“master所在的位置,我们最后一次与他们交谈“。该内存存储在origin/master中。因此,您可以运行:

git log origin/master..master

表示“显示我在master上的内容,而不是origin/master上的内容”。

如果你跑:

git fetch origin

(你可以随时做),告诉你的Git:origin连接到另一个Git,然后拿起他们拥有的任何新项目,并更新我的{{1} }和其他origin/master远程跟踪分支名称。

同样,当你跑:

origin/

告诉你的Git:git push origin master 连接到其他Git,给他们新的提交,然后让他们将他们的 origin设置为相同的作为我master的事情。如果他们 - master的另一个Git - 同意更新他们的主人的请求,那么你的Git会记录你的origin,因为你的Git知道他们的Git已经更新。

答案 1 :(得分:0)

@torek提出了一个很好的观点,即在存储库被克隆时告诉它是很棘手的。但是,在远程分支和本地分支之间获取提交列表非常容易。

使用

git log HEAD...origin/your_branch

HEAD是您当地分支机构当前所在的位置。

origin/your_branch是repo具有远程分支的提示

的地方

来自git help log页面:

git log [<options>] [<revision range>] [[--] <path>...]

   <revision range>
       Show only commits in the specified revision range. When no <revision range> is specified, it
       defaults to HEAD (i.e. the whole history leading to the current commit).  origin..HEAD
       specifies all the commits reachable from the current commit (i.e.  HEAD), but not from origin.
       For a complete list of ways to spell <revision range>, see the Specifying Ranges section of
       gitrevisions(7).