Вы могли бы , вероятно, сделать это, эмулируя большую часть операций, которые git уже выполняет внутри, и интенсивно используя команды git plumbing (low-level).Однако, если вы сделаете это, вам не только понадобится много действительно низкоуровневых вещей, вы также получите очень мало эффективности в том, что вы делаете (не только если вы запрашиваете информацию во второй раз).
Так что я бы предложил вам сделать (высокоуровневый) клон из репозитория и работать с ним таким образом, даже если этот репозиторий будет существовать только временно.Например, если вы хотите посмотреть только самые новые коммиты, вы можете легко ограничить то, что вы клонируете, создав клон shallow (используйте опцию --depth
с клоном).