¿Por qué tengo que "clonar" un repository de Git existente para acceder a él?

Tengo un repository existente en BeanStalk. Todo lo que quiero hacer es usar una aplicación OS X que me permita usar una GUI (como lo hago en el website de BeanStalk), como Tower o Sprout. Ambos quieren que "clone" mi repository existente.

¿Por qué tengo que hacer eso, en lugar de solo acceder a él desde la aplicación OS X?

Porque de esa manera, puede trabajar localmente en su clon y luego retroceder cuando esté listo.

Esto está relacionado con la naturaleza distribuida del VCS (Sistema de control de versiones) utilizado por Tower o Sprout (aquí "git").

Vea la diferencia entre:

  • un flujo de trabajo DVCS
  • un flujo de trabajo centralizado

Version Control tiene un flujo de trabajo diferente que FTP. FTP es bastante simple; edita un file y luego súbalo. Ya terminaste Eso también puede ser un problema. El file en su computadora coincide con el file en el server de alojamiento … pero sus compañeros de trabajo no lo saben. Eso podría ser peligroso!

Version Control lo lleva a otro nivel. Todo es rastreado Esto permite una mejor queueboración en equipo. Las ediciones se comparten con otros y cuando hay un conflicto, se marcarán.

Debido a que se trata de un flujo de trabajo diferente, el desarrollo se realiza exclusivamente en su computadora. La clonación le proporciona una copy de todos los files del repository y luego los coloca en su computadora en un área que Tower o Sprout pueden monitorear. Estas herramientas le permitirán saber cuándo un compañero de trabajo ha enviado una actualización y luego lo ayudará a actualizar sus files locales (y viceversa). Estos progtwigs son esenciales para el flujo de trabajo y deben activarse y usarse durante todo el día.

Muchas veces mi trabajo ha sido sobrescrito con el flujo de trabajo de FTP normal. He hecho lo mismo con los demás. Es raro que use FTP más. La clonación es su primer paso para get los files del repository en su computadora.

Espero que esto haya sido de ayuda ¡y buena suerte!

La idea del control de versiones moderno es que cada desarrollador (cada usuario) obtiene su propia copy del proyecto , la suya propia (trabajo, área de trabajo, tree de trabajo). De esta forma, el trabajo de un desarrollador se separa de otros desarrolladores y no hará que otros trabajen. (Por supuesto, el sistema de control de versiones también debe tener la capacidad de fusionarse, es decir, join a cambios).

La idea general del control de versiones distribuidas es que cada desarrollador (cada usuario) obtenga su propia copy del repository , el clon de él / ella. De esta forma, un desarrollador puede trabajar en una serie de pasos, series de compromisos separados de otros desarrolladores.

Tenga en count que si ya ha clonado el repository en su computadora, todas las GUI de Git le permiten seleccionar el repository de Git existente (a veces iniciando desde dentro de dicho repository) en lugar de crear un clon nuevo. Por supuesto, entonces debe recordar mantenerse actualizado a través de la function de búsqueda / extracción, y mantener actualizado su repository de publicación remota a través de la inserción.


Dicho esto, algunos sitios de alojamiento de git / forjas de software incluyen en su interfaz web la capacidad de administrar / editar el repository desde el browser web . Por ejemplo, GitHub proporciona una interfaz para crear , editar y otras operaciones en files, crear twigs y fusionarlas; incluso puede proporcionar una propuesta de cambio en un repository extranjero a través de la clonación de GitHub y crear una request de extracción para usted.

Beanstalk también (de lo que dicen en la documentation) tiene algún soporte para la edición de código (en la parte inferior de la página, columna izquierda).

También hay herramientas como GitHub para Mac , pero no sé si utiliza la API de GitHub para editar el repository remoto, como a través del browser web, o como otras GUI de Git requieren clonar el repository en el escritorio.

Por supuesto, no funcionaría de esa manera con el repository alojado en Beanstalk; Beanstalk ha pensado en herramientas de terceros como Habichuelas o Magic Bean para iOS.

No hay nada en git que requiera este comportamiento. Las probabilidades son las aplicaciones que está tratando de usar, solo asum que está alojando su código de forma remota, como en GitHub. Si no tiene un repository remoto, entonces debería poder ignorar estas instrucciones.

Depende de las herramientas disponibles en el sistema que aloja el repository remoto.

Para poder, por ejemplo, ver el historial de versiones de un repository remoto, algo que se ejecuta en el sistema remoto debe ejecutar el command git log o equivalente. No puede ejecutar el command git log usted mismo; eso solo funciona en tu sistema local, y solo si tu directory actual está dentro de un repository de git.

Si está interesado en examinar un repository en un sistema remoto y ese sistema remoto proporciona las herramientas adecuadas creadas sobre git , entonces no necesita clonar el repository. Por ejemplo, GitHub proporciona una interfaz web (que, detrás de escena, presumiblemente ejecuta el git log y otros commands en los repositorys almacenados en los serveres de GitHub).

Si quiere la potencia total de Git, puede clonar el repository (copyrlo en su propio sistema local) y ejecutar commands git ... localmente. Pero, por supuesto, la mayoría de esos commands (que no sean git pull , git push , etc.) no afectarán el repository remoto.

Así es como Git y otros sistemas de control de versiones distribuidas están diseñados para funcionar.