Git:如何检查提取的内容

时间:2014-09-25 15:06:10

标签: git

我在这里处理一些事情。我做了几个add,做了几个commit。现在,我做了一个fetch来远程更改我的远程跟踪存储库。

我怎样才能了解什么是什么?

我知道我可以git diff origin/branch branch看看我的远程跟踪和本地分支之间有什么不同。但是我该怎么知道取得了什么?

3 个答案:

答案 0 :(得分:2)

本地和远程

之间的差异

如果您只对获取后本地和远程之间的差异感兴趣,那么您可以使用.git/refs/heads/.git/refs/remotes/origin/之间的日志命令或配置上游分支之类的(请注意点使用情况比较)你的命令):

git log ..@{u}
git log branch..origin/branch

或高级对称差异:

git log --oneline --left-right --cherry-pick ...@{u}
git log --oneline --left-right --cherry-pick branch...origin/branch

取得什么

在执行期间由命令本身记录:

$ git fetch 
(...)
From ...
   c1e6a44..8f13b81  master     -> origin/master
   b1304b4..359293c  branchA -> origin/branchA
 * [new branch]      branchB -> origin/branchB

或者使用详细选项(-v):

$ git fetch -v
(...)
From ...
   c1e6a44..8f13b81  master     -> origin/master
   b1304b4..359293c  branchA     -> origin/branchA
 = [up to date]      branchB     -> origin/branchB
 + 1e8827e...cf7aac7 branchC -> origin/branchC  (forced update)

git help revisions中所述,FETCH_HEAD记录了您使用上次git fetch调用从远程存储库中获取的分支:

git log ..FETCH_HEAD

但是,之前的FETCH_HEAD内容已丢失。所以你以后不能确切知道最新的fetch命令只能获取什么。尝试以下命令(您可以将其设为Git别名):

cp .git/FETCH_HEAD .git/FETCH_HEAD.old && git fetch -q && diff .git/FETCH_HEAD.old .git/FETCH_HEAD

传入更改

我经常使用以下别名来检查传入的更改:

in = "!git remote update -p; git log ..@{u}"

答案 1 :(得分:1)

我假设你想看看自己签出自己的分支后发生了什么原因发生了什么:

我已经为日志创建了一个别名,名为' hist':link

在这个项目中,我将文本键入文件并创建了初始提交。然后我克隆了回购并对克隆进行了更改。然后我回到原点并对文件进行了更改。然后我进入副本并取出了#39;。当我键入' git hist --all'时,这是输出:

* 69c8726 2014-09-25 | origin change (origin/master, origin/HEAD)
| * ee54c17 2014-09-25 | change from copy (HEAD, master)
|/
* 81ba217 2014-09-25 | initial commit

要查看“初始提交”与“初始提交”之间的差异。和'原点改变',我输入:

$ git diff 81ba217 origin/master

diff --git a/hello.txt b/hello.txt
index bfd905d..617496a 100644
--- a/hello.txt
+++ b/hello.txt
@@ -1 +1,2 @@
 this is text
+this is an origin change

答案 2 :(得分:1)

使用您想要显示信息的任何git命令,您将使用以下修订规范

@{u}@{1}..@{u}

例如,列出您可以使用的提交

git log --oneline @{u}@{1}..@{u}

列出您可以使用的文件

git diff --name-only  @{u}@{1}..@{u}

或者您喜欢的任何其他形式或日志/差异。

这适用于您当前签出的任何跟踪分支。