¿Cómo colocar el proyecto de Golang(un conjunto de paquetes) en Github?
(3)
Para el paquete
newmath
es lo mismo que (más adelante 2.)$ mkdir $GOPATH/src/github.com/username/newmath $ cd $GOPATH/src/github.com/username/newmath $ git init $ ... more git setup $ touch sqrt.go $ gvim sqrt.go $ git add sqrt.go $ git commit -a -m ''Inital commit'' $ git push
Ahora la gente puede hacer
$ go get github.com/username/newmath
y
import "github.com/username/newmath"
Ahora debería trabajar en sus fuentes. El paquete se instalará bajo demanda automáticamente.
newmath
que el comandohello
y el paquetenewmath
no están relacionados, o no están lo suficientemente relacionados como para pertenecer a un único repositorio.$ mkdir $GOPATH/src/github.com/username/hello $ cd $GOPATH/src/github.com/username/hello $ git init $ ... more git setup $ touch hello.go $ gvim hello.go $ git add hello.go $ git commit -a -m ''Inital commit'' $ git push
Ahora la gente puede hacer
$ go get github.com/username/hello $ go install github.com/username/hello
para instalar su comando
hello
.- No tiene mucho sentido publicar el contenido de
$GOPATH/pkg
en el servicio de alojamiento. - Tiene algún sentido publicar el contenido de
$GOPATH/bin
en el servicio de alojamiento. Pero desaliento esta práctica por razones obvias. Además, si está publicando las fuentes, los binarios no son necesarios y todos pueden construir su propio (confiable).
- No tiene mucho sentido publicar el contenido de
Parece que quizás todavía te haya confundido un poco el término "espacio de trabajo". Un espacio de trabajo suele existir solo una vez en la máquina del desarrollador, aunque normalmente contiene varios repositorios. Algunos escritos por el desarrollador, otros "salieron" de Internet. Publicar todo un espacio de trabajo en este caso tiene poco sentido.
Sin embargo, hay personas que usan un espacio de trabajo separado por proyecto o por repositorio o incluso por paquete. No sé cuáles son los beneficios. O mejor dicho, creo que no hay ninguno en comparación con el espacio de trabajo único, definido por, digamos, export GOPATH=$HOME
(como es mi caso durante años sin ningún problema con él durante años).
No está claro para mi tutorial de Golang cómo colocar el código de Golang en Github para poder importar ese código como un paquete de Github más adelante.
Este es un ejemplo de espacio de trabajo del proyecto (estructura de directorios) del tutorial de Golang http://golang.org/doc/code.html :
bin/
hello # command executable
pkg/
linux_amd64/ # this will reflect your OS and architecture
github.com/user/
newmath.a # package object
src/
github.com/user/
hello/
hello.go # command source
newmath/
sqrt.go # package source
Entonces, ¿qué debo hacer, dónde necesito git init
en este espacio de trabajo, para poder más adelante:
Para importar solo el paquete
newmath
en mi proyecto separado. De esta manera:import "github.com/user/newmath"
Para obtener solo el ejecutable
hello.exe
.Para obtener todo el espacio de trabajo del proyecto (todos los directorios: bin, pkg, src).
Mira este enlace para más detalles:
github go wiki sobre el diseño del código github
A continuación se muestra una sección permanente:
La aplicación y ambas bibliotecas viven en Github, cada una en su propio repositorio. $ GOPATH es la raíz del proyecto: cada uno de sus repositorios de Github se revisará en varias carpetas debajo de $ GOPATH.
El diseño de tu código se vería así:
$GOPATH/
src/
github.com/
jmcvetta/
useless/
.git/
useless.go
useless_test.go
README.md
uselessd/
.git/
uselessd.go
uselessd_test.go
README.md
Cada carpeta en src / github.com / jmcvetta / es la raíz de un pago de git separado.
Si no eres un fanático de git cli, todo lo que necesitas hacer es subir a github repo a través de la interfaz web. Solo asegúrate de que tienes el nombre de tu paquete con el mismo nombre que el repositorio (en minúsculas) y deberías estar listo. Hice lo mismo con github.com/Digitalblueeye/enroute para mi biblioteca REST API.