Git Bash скрипт, чтобы проверить, есть ли в репо какие-либо коммиты? - PullRequest
0 голосов
/ 16 марта 2011

У меня есть сценарий, который мне нужен, чтобы действовать по-разному, в зависимости от того, есть ли один, или более, фиксирует.Каков наилучший способ сделать это?

В псевдокоде это будет выглядеть примерно так ...

#!/bin/bash

if [[ `git log_count` == "0" ]]; then
    echo "No commits exist for this repo."
    # Do stuff..
else
    echo "One or more commits do exist!"
    # Do other stuff
fi

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 16 марта 2011

Вы также можете проверить результат:

git rev-parse --verify HEAD

(после этой темы :)

  1. Это сантехническая команда, и поэтому она вряд ли изменит свое поведение против "git diff".
  2. Мне кажется, это более очевидно. rev-parse --verify предназначен для запроса «Это правильное имя объекта?»

Это немного отличается от вашего show-ref.
Ваш спрашивает "есть ли что-нибудь в refs / заголовках в этом хранилище?"
Шахта спрашивает "существует ли текущий HEAD?"

На практике они оба являются приемлемыми тестами, так как после того, как у вас есть ветвь, очень трудно заставить HEAD указать на что-то недопустимое, за исключением редактирования вручную какого-то поддельного значения. Но вы можете предпочесть одно другому, в зависимости от того, что вы пытаетесь сказать.

0 голосов
/ 16 марта 2011

Тривиально из макушки моей головы

$ git log | egrep -c  "^commit"
1493
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...