Git sin copy local completa

Digamos que tengo un repo grande en GitHub, y estoy empujando desde una computadora con una muy pequeña cantidad de espacio. Me gustaría enviar files uno por uno sin tener que save todos los files del control remoto. Si quisiera editar un file desde el control remoto, lo downloadía, haría mis cambios y luego retrocedería al control remoto. ¿Hay alguna manera de hacer esto?

Quiero hacer esto programáticamente para un service web.

Puede implementar esto usando la API de GitHub.

Puede recuperar el contenido de un file dada la ruta:

https://developer.github.com/v3/repos/contents/#get-contents

Este método devuelve el contenido de un file o directory en un repository.

GET /repos/:owner/:repo/contents/:path

Los files y los enlaces simbólicos admiten un tipo de medio personalizado para recuperar el contenido sin procesar o HTML procesado (cuando es compatible). Todos los types de contenido admiten un tipo de medio personalizado para garantizar que el contenido se devuelva en un formatting de object coherente.

Y también puedes actualizar el contenido en una ruta determinada:

https://developer.github.com/v3/repos/contents/#update-a-file

Este método actualiza un file en un repository

PUT /repos/:owner/:repo/contents/:path

También puede crear nuevos files o eliminarlos.

https://developer.github.com/v3/repos/contents/#create-a-file

https://developer.github.com/v3/repos/contents/#delete-a-file

La API es extensa; puede encontrar mucho más en la documentation.