¿Cómo envío un repositorio local a Bitbucket usando SourceTree sin crear primero un repositorio en bitbucket?

116

¿Hay alguna manera de importar mis repositorios de git locales a SourceTree y enviarlos a mi cuenta de Bitbucket, creando nuevos repositorios idénticos a mis repositorios locales en mi cuenta? ¿O primero tengo que hacer un repositorio en línea y presionarlo? Github tiene una forma de publicar sus repositorios locales directamente desde su cliente, y lo crea automáticamente cuando publica, pero tiene repositorios privados limitados. Solo estoy haciendo la tarea, así que no hay razón para que sea pública, por eso estoy tratando de usar bitbucket.

cma0014
fuente

Respuestas:

152

(actualizado el 3-29-2019 para usar https en lugar de ssh, por lo que no necesita usar claves ssh)

Parece que para BitBucket, primero debe crear un repositorio en línea. Siguiendo las instrucciones de Atlassian , simplemente cree un nuevo repositorio de BitBucket, copie la URL del repositorio en el portapapeles y luego agregue ese repositorio como un nuevo control remoto a su repositorio local (pasos completos a continuación):

Obtener URL de repositorio

  1. en su repositorio de BitBucket, elija "Clonar" en la parte superior derecha
  2. elija "HTTPS" en lugar de "SSH" en la parte superior derecha del cuadro de diálogo
  3. debería mostrar su URL de repositorio en el formulario git clone <repository url>

Agregar control remoto mediante CLI

  1. cd /path/to/my/repo
  2. git remote add origin https://bitbucket.org/<username>/<reponame>.git
  3. git push -u origin --all

Agregar control remoto usando SourceTree

  1. Repositorio> Agregar remoto ...
  2. Pegue la URL del repositorio de BitBucket ( https://bitbucket.org/<username>/<reponame>.git)

Método antiguo: creación y registro de claves SSH

(este método es si usa la URL ssh en lugar de la URL https, que parece ssh://[email protected]/<username>/<reponame>.git. Recomiendo solo usar https)

BitBucket es ideal para repositorios privados, pero deberá configurar una clave ssh para autorizar a su computadora a trabajar con su cuenta BitBucket. Afortunadamente, Sourcetree lo hace relativamente simple:

Crear una clave en SourceTree:

  1. En Tools> Options, asegúrese de que SSH Client:esté configurado en PuTTY/Plinkdebajo de la Generalpestaña
  2. Seleccione Tools>Create or Import SSH Keys
  3. En la ventana emergente, haga clic Generatey mueva el mouse para dar aleatoriedad al generador de claves
  4. Debería obtener algo como lo que se muestra en la captura de pantalla a continuación. Copie la clave pública (resaltada en azul) en su portapapeles

    masilla

  5. Haga clic en Save private Keyy Save public keypara guardar sus claves en el lugar que elija (por ejemplo, hacia <Home Dir>/putty/ssk-key.ppky <Home Dir>/putty/ssh-key.pubrespectivamente) antes de pasar a la siguiente sección

Registrar la clave en BitBucket

  1. Inicie sesión en su cuenta de BitBucket y, en la parte superior derecha, haga clic en su foto de perfil y haga clic enSettings
  2. Vaya a la SSH Keyspestaña en la barra lateral izquierda
  3. Haga clic en Add SSH Key, asígnele un nombre y pegue la clave pública que copió en el paso 4 de la sección anterior.

¡Eso es! Ahora debería poder empujar / tirar a sus repositorios privados de BitBucket. Tus claves tampoco son solo para Git, muchos servicios usan claves ssh para identificar a los usuarios, y la mejor parte es que solo necesitas una. Si alguna vez pierde sus claves (por ejemplo, al cambiar de computadora), simplemente siga los pasos para crear y registrar una nueva.

Nota al margen: Creación de claves SSH mediante CLI

Solo sigue este tutorial

woojoo666
fuente
el uso Paste the BitBucket repository url ([email protected]/<username>/<reponame>.git)le obligará a agregar una clave ssh. En caso de que no tenga uno existente, será una molestia.
Alex Kyriakidis
1
sí, BitBucket es principalmente para repositorios privados, por lo que necesitará una clave ssh para comenzar. ¡No te preocupes, no es tan malo como parece!
Agregué
3
¿Por qué están luchando con SSH y claves públicas / privadas cuando es mucho más fácil usar HTTPS? En el Clonecuadro de diálogo, cambie el menú desplegable superior derecho de SSH a HTTPS y obtenga la URL:https://bitbucket.org/<reponame>.git
Dan Dar3
1
@ DanDar3 Sí, gracias, esto me ahorró muchos problemas.
Excrubulent
1
@ DanDar3 wow, eso es mucho más fácil, actualicé la respuesta, ¡gracias!
woojoo666
24

De hecho, existe una solución más sencilla (solo en la versión Mac). Solo cuatro pasos:

  1. Haga clic derecho en el repositorio y seleccione "Publicar en remoto ..."

Publicación de SourceTree en Screeshot remoto

  1. La siguiente ventana le pedirá que publique (github, bitbucket, etc.) y ya está.
  2. Vincular el repositorio remoto
  3. empujar
David
fuente
Esto debe ser nuevo. En realidad, no he usado repositorios en un tiempo, así que lo intentaré.
cma0014
3
En realidad, he comprobado que solo está en la versión Mac de SourceTree, no en Windows. :(
David
1
Sí, he comprobado que crea el repositorio en el control remoto, pero luego no lo establece en los controles remotos del repositorio local. Sería una buena actualización para las próximas versiones
David
1
@bauerMusic esto me pasó también con la ventana "en curso". Pero no últimamente. Aunque como dijiste ... algo falla con esta característica. No se vincula al nuevo repositorio remoto como todos esperaríamos. A pesar de todo, SourceTree es el mejor administrador de GIT para Mac que encontré.
David
1
En realidad, funciona perfecto para mí, crea el repositorio y lo vincula con lo local y lo remoto, tal vez desde 2016 lo mejoran
Kross
10

Como ilustra este video , la forma habitual de hacerlo es crear un repositorio en línea primero.

Las notas de la versión de SourceTree sí mencionan SourceTree 1.5+:

Admite la creación de nuevos repositorios en cuentas de equipo / organización en Bitbucket.

Entonces, aunque no hay una función de "publicación", puede crear su repositorio en línea desde SourceTree.

La publicación del blog " SourceTree para Windows 1.2 ya está aquí " (septiembre de 2013) también menciona:

Ahora puede configurar sus cuentas de Bitbucket, Stash y GitHub en SourceTree y ver instantáneamente todos sus repositorios en esos servicios. Clónelos fácilmente, abra el proyecto en la web e incluso cree nuevos repositorios en el servicio remoto sin tener que salir de SourceTree .
Lo encontrará en el menú en Ver> Mostrar repositorios alojados, o usando el nuevo botón en la parte inferior derecha del panel de marcadores.

http://blog.sourcetreeapp.com/files/2013/09/hostedrepowindow.png

VonC
fuente
Intentaré esto cuando llegue a casa, ¡Gracias!
cma0014
Sí, pero hacer que la carpeta de desarrollo local sea el repositorio está resultando difícil.
Ben Racicot
3

Usé esto y funcionó bien para mí. Si su directorio es

"repo" y tu proyecto es "hola" copia el proyecto allí

cd /path/to/my/repo

Inicializa tu directorio

git init

Etapa del proyecto

git add hello

comprometer el proyecto

git commit

Agregue configuraciones usando el correo electrónico y el nombre de usuario que está usando en Bitbucket

git config --global user.email
git config --global user.name

Agregar comentario al proyecto

git commit -m 'comment'

empuja el proyecto ahora

git push origin master

Salida del maestro

git checkout master
bademba
fuente
3

Bitbucket admite una API REST que puede utilizar para crear repositorios Bitbucket mediante programación.

Muestra de documentación y cURL disponible aquí: https://confluence.atlassian.com/bitbucket/repository-resource-423626331.html#repositoryResource-POSTanewrepository

$ curl -X POST -v -u username:password -H "Content-Type: application/json" \
   https://api.bitbucket.org/2.0/repositories/teamsinspace/new-repository4 \
   -d '{"scm": "git", "is_private": "true", "fork_policy": "no_public_forks" }'

En Windows, curl está disponible en el shell de Git Bash.

Con este método, podría crear fácilmente un script para importar muchos repositorios desde un servidor git local a Bitbucket.

Joe Savage
fuente
1

Configurar el repositorio de Bitbucket (línea de comandos con Mac)

Cree una nueva APLICACIÓN desde el inicio con la reposidad local:

  1. Terminal -> cd ~ / Documentos (Pegue la ruta del directorio base de su APLICACIÓN)
  2. Terminal -> mkdir (crear directorio con)
  3. Terminal -> cd (cambiar directorio con directorio)
  4. BitBucket A / C -> crear repositorio en la cuenta bitBucket
  5. Xcode -> crear un nuevo proyecto xcode con el mismo nombre
  6. Terminal -> git init (iniciar repositorio vacío)
  7. Terminal -> git remote agregar origen (Ej. Https: //[email protected]/app/app.git )
  8. Terminal -> git add.
  9. Terminal -> estado de git
    1. Terminal -> git commit -m "IntialCommet"
    2. Terminal -> git push origin master

Crear repositorio de clones de APLICACIÓN:

  1. Terminal -> mkdir (crear directorio con)
  2. Terminal -> cd (cambiar directorio con directorio)
  3. Terminal -> git clone (por ejemplo, https: //[email protected]/app/app.git )
  4. Terminal -> cd
  5. Terminal -> estado de git (Mostrar estado de archivo de edición / actualización)
  6. Terminal -> git pull origin master
  7. Terminal -> git add.
  8. Terminal -> git push origin master
Shrikant Tanwade
fuente
1

Otra solución para usuarios de Windows:

Esto usa Github como un puente para llegar a Bitbucket, debido a la falta de publicación directamente desde la aplicación Windows Sourcetree.

  1. Cargue su repositorio local en la aplicación de escritorio Github.
  2. Publique el repositorio como un repositorio privado (por privacidad, si lo desea) desde la aplicación de escritorio Github en su cuenta de Github.
  3. Abra su cuenta personal / de equipo en el sitio web de Bitbucket
  4. Cree un nuevo repositorio de Bitbucket importando desde Github.
  5. Elimina el repositorio en Github.

Una vez hecho esto, todo se cargará en Bitbucket. Es probable que sus controles remotos locales necesiten configurarse para apuntar a Bitbucket ahora.

David Ruiz
fuente
0

GIT cumple bien su propósito para el control de versiones y los proyectos de equipo si las confirmaciones y las ramas se mantienen correctamente.
Paso 1: Clone su repositorio local usando cli como se menciona en las respuestas anteriores

$ cd [ruta_a_repo]
$ git remoto agregar origen ssh: //[email protected]//.git
$ git push -u origen --todos

Paso 2: puede seguir cualquiera de los pasos anteriores para empujar / tirar de sus obras. Una forma fácil es usar git gui. Proporciona una interfaz gráfica para que sea fácil preparar (agregar) / quitar la etapa, confirmar / deshacer y empujar / tirar. Los principiantes pueden comprender fácilmente el proceso de git.

$ git gui

(O)
Paso 2: Como se mencionó anteriormente. Los códigos Cli harán el trabajo.

$ git status
$ git add [file_name]
$ git commit _m "[Comit message"] "
$ git push origin master / branch_name

Raj sree
fuente
0

Como actualización de la respuesta de Joe , ya que puede crear un script para la creación del repositorio usando la API, solo la llamada a la API que necesitaba era diferente. Esto puede deberse a que estamos usando un servidor bitbucket y no una nube bitbucket.

Para crear un nuevo repositorio dentro de un proyecto en nuestro servidor, utilicé:

curl -X POST -v -u USER:PASSWORD -H "Content-Type: application/json" \
http://SERVER/rest/api/1.0/projects/PROJECTNAME/repos/ \
-d '{"scmid":"git", "name":"REPONAME"}'

donde USER, PASSWORD, SERVER, PROJECTNAMEyREPONAME eran por supuesto los valores deseados / requeridos.

La llamada está documentada en la referencia de API .

/rest/api/1.0/projects/{projectKey}/repos

Crea un nuevo repositorio. Requiere un proyecto existente en el que se creará este repositorio. Los únicos parámetros que se utilizarán son name y scmId.

El usuario autenticado debe tener el permiso PROJECT_ADMIN para que el proyecto de contexto llame a este recurso.

Baldrickk
fuente
0

(Linux / WSL al menos) Desde el navegador en bitbucket.org, cree un repositorio vacío con el mismo nombre que su repositorio local, siga las instrucciones propuestas por bitbucket para importar un repositorio local (dos comandos para escribir).

Adhémar Patamob
fuente