4

我有一个本地 git repo,我有一个远程 git repo。什么是查看远程 repo 提交和本地 repo 提交的简单命令,所以我可以简单地查看我是否是最新的?

这将在程序中自动化,所以我不想要很多复杂的东西,我必须解析。最好让本地和远程输出相同的文本很酷,只有提交在两者之间发生变化。有任何想法吗?

4

2 回答 2

6

程序化解决方案

如果您想要一个编程解决方案,您可以查看存储在每个 head 中的提交并进行比较。例如:

remote=$(
    git ls-remote -h origin master |
    awk '{print $1}'
)
local=$(git rev-parse HEAD)

printf "Local : %s\nRemote: %s\n" $local $remote

if [[ $local == $remote ]]; then
    echo "Commits match."
else
    echo "Commits don't match."
fi

样本输出

Local : 9e1b4dc286acb442f7f604be7916db660b9d70cd
Remote: 9e1b4dc286acb442f7f604be7916db660b9d70cd
Commits match.
于 2012-06-24T22:36:45.897 回答
1

假设您的远程存储库被远程引用origin,并且您对分支感兴趣master,您可以执行以下操作:

git fetch origin

然后比较输出:

git rev-parse master

... 和:

git rev-parse origin/master

如果这两个命令输出的对象名称相同,则运行时 yourmastermasterinorigin相同git fetch origin

于 2012-06-24T17:06:34.293 回答