在 Git 中,我希望能够一目了然地查看我的存储库和工作目录是否已过时。我经常犯的错误是只运行“git status”——但这根本不做任何远程通信。或者,我会这样做:
git fetch --all
git status
但这并没有显示其他分支机构的活动。
什么是获取信息的好方法,例如:
- 任何远程存储库中是否有此分支的更新?
- 是否有任何父分支的更新?
- 是否有任何新的分支 - 谁,等等。
在 Git 中,我希望能够一目了然地查看我的存储库和工作目录是否已过时。我经常犯的错误是只运行“git status”——但这根本不做任何远程通信。或者,我会这样做:
git fetch --all
git status
但这并没有显示其他分支机构的活动。
什么是获取信息的好方法,例如:
我建议使用gitk --all
. 这将启动一个显示所有本地和远程分支的图形界面。在控制台模式下,我使用以下 git 别名:
graph = log --graph --all --decorate --oneline
但请注意,工作目录不要与分支混淆......我刚才所说的对于查看分支来说是正确的,但是工作目录中的更改(因此,未提交的东西)是完全不同的,并且git status
正如你所说的那样。
由于分支创建实际上并未记录在任何地方,因此您无法获得“谁是谁”。(您可以找到谁拥有给定分支上的最新提交,但是,例如,如果该分支是作为另一个分支的同义词创建的,则提交通常与“谁创建它”无关。例如,如果我这样git push origin master:newbranch
做我刚刚在遥控器上创建的分支,作为其最近的提交,与最近的提交相同master
,这不一定是“我的”。)
不过,默认情况下,输出git fetch --all
确实显示活动。例如:
$ git fetch --all
Fetching origin
Fetching rohan
From [redacted]
55f37f2..dc439fc master -> rohan/master
这表示我刚刚根据我从名为“rohan”的遥控器带来的东西更新了我对 rohan/master 的想法。origin/* 中没有任何更新。