Я удалил нежелательные файлы библиотеки с:
find -mtime -1 -maxdepth 1 -exec rm -rf {} \;
который находит файлы и каталоги измененными в течение одного дня под текущим каталогом, и удаляет всех их.
В то время как нет никаких утилит, которые поставляются с Git, который позволяет вам делать то, что вы хотите, это , это , довольно легко написать сценарий Python, который анализирует объект Git, а затем выводит автор и совершать сообщение.
Вот образец один, который ожидает объекта Commit GIT на stdin
, а затем печатает автор, а затем сообщение Commit:
from parse import parse
import sys, zlib
raw_commit = sys.stdin.buffer.read()
commit = zlib.decompress(raw_commit).decode('utf-8').split('\x00')[1]
(headers, body) = commit.split('\n\n')
for line in headers.splitlines():
# `{:S}` is a type identifier meaning 'non-whitespace', so that
# the fields will be captured successfully.
p = parse('author {name} <{email:S}> {time:S} {tz:S}', line)
if (p):
print("Author: {} <{}>\n".format(p['name'], p['email']))
print(body)
break
, чтобы сделать полную утилиту, такую как вы хотите, чтобы сервер должен поддерживать Транспортный протокол Dumb Git через HTTP, так как вы не можете получить один коммит с использованием Smart Protocol.
GitHub больше не поддерживает тупой транспортный протокол, поэтому я буду использовать свою самосоведующуюся копию дерева Линуса в качестве примера.
Если удаленный сервер поддерживает Dump HTTP Git Transport, вы можете просто использовать Curl, чтобы получить объект, а затем подержать его к вышеуказанному скрипту Python. Допустим, мы хотим видеть автора и совершить послание Commit C3FE5872EB
, то мы выполним следующий скрипт оболочки:
baseurl=http://git.kyriasis.com/kyrias/linux.git/objects
curl "$baseurl"/c3/fe5872eb3f5f9e027d61d8a3f5d092168fdbca | python parse.py
, который будет распечатать следующий вывод:
Author: Sanidhya Kashyap <sanidhya.gatech@gmail.com>
bfs: correct return values
In case of failed memory allocation, the return should be ENOMEM instead
of ENOSPC.
...
полный фиксатор SHA Commit C3FE5872EB
C3FE5872EB3F5F9E027D61D8A3F5D092168FDBCA
, и, как вы можете видеть в приведенном выше скрипте оболочки, SHA разделен после второго символа с помощью косой. Это связано с тем, что GIT хранит объекты объектов, пространства, представленные под первыми двумя символами SHA, предположительно из-за устаревшей файловой системы, имеющей низкие ограничения на количество файлов, которые могут находиться в одном каталоге.
В то время как этот ответ не дает полной рабочей реализации удаленного команды Git-Show
, она дает основные детали, необходимые для простых.
Как насчет использования Журнал Git :
git log -1
Пример:
$ git log -1
commit 4a3dfcc66ca76a19052a7c0d44d5e6c315d79e07
Author: LE Manh Cuong <example@example.com>
Date: Fri Apr 17 01:54:10 2015 +0700
Make yanking work in OSX.