2017-04-20 96 views
0

这里我GIT本地资源库从文件远处的仓库克隆在时间T:哪一个等同于SVN同步的git命令?

A.txt 
B.txt 
C.txt 

在时间T + 1,在远程仓库(被跟踪的一个)的文件:

*A.txt* 
C.txt 
D.txt 

我们看到,A.txt已被修改(我把*),B.txt已被删除,D.txt被添加。

问:什么是输出git的命令(一行一个文件)在我的当地邮局:

* A.txt (modified) 
- B.txt (deletion) 
+ D.txt (add) 

总之,我想输出我的本地回购和远程跟踪一个之间的差异。一行文件(出于可读性原因)

非常感谢。

回答

2

比较本地到远程,你首先要取。通常这只是

git fetch 

此时git status会给你一个非常粗略的总结如何遥遥领先/后面你,但要真正知道发生了什么改变了你会做这样的事情

git diff --stat origin/master master 

(假设遥控器在本地回购中设置为origin,这是典型的/默认情况。)

+0

好的,谢谢。通常与GIT合作的方式是什么?我经常与SVN进行同步,以按文件或文件组更新和解决冲突文件。 –

+0

是的,这是使用git的常用方法。 (如果你有一个远程仓库,这是使用git的唯一方法;如果你与其他开发人员协作 - 这是git设计中的一个关键考虑因素 - 那么你需要一个远程仓库......)不总是知道遥控器的状态似乎很奇怪,但实际上git只是给你*选项*以在没有远程通信的情况下操作(出于各种原因;大多数情况下它帮助git可笑得快)。如果您需要来自远程的持续更新,您可以随时获取;但你可能会发现你不需要。 –

+0

好的。事实上,我觉得这个程序有点无聊或挑剔。我是否应该只在有价值时才这样做(毕竟这是丰富的输出)?例如,'git merge'或'git rebase'在99%的情况下自动工作(就像SVN同步工具菜单一样),否则它会提示手动解决git无法自动解决的冲突。我对吗 ? –

-1

您可以使用命令git status

+0

就像那样简单。我正在寻找git log或git diff。谢谢。 –

+0

@FrançoisF。 - 'git status'不会提供你所要求的细节,如果你还没有首先完成'git fetch',它就不会告诉你任何东西。所以实际上不那么简单。 –

+0

好吧,那么它会在这个用例中输出什么(与远程回购比较)? –