Ejemplos de código
Para realizar un seguimiento de una rama remota
git remote add -t master Hnr git://github.com/userName/files.git
Esto no le descarga la rama. Simplemente edita el archivo .git/config y agrega algunas líneas que le dicen a Git cómo y dónde obtener datos de forma remota.
Para obtener rama de su compañero de equipo, ejecute
git fetch Hnr
Para ver que realmente tenga sus compañeros de equipo rama, ejecutar
git branch -a
o para ver sólo sus amigos ramas
git branch -r
Los dos comandos anteriores causaron mi confusión inicialmente, ya que no los conocía. Esto me hizo probar otros comandos innecesarios para tener las ramas para mí.
segunda manera de tener sucursal de su amigo
Sin embargo, tenga en cuenta que puede utilizar git-clone tener el código de su amigo a un directorio independiente de la siguiente manera
git clone UrlAtGithub
A continuación, al parecer, puede usar Git-remoto como antes para tener una sucursal en su Git repo:
git remote add master Hnr PATH/ToYourFriendRepo.git
Conclusión: Puede usar dos formas para tener la rama de su TeamMate, ya sea por git-clone o sin ella. Ambas formas requieren el uso de git remote add
. La ventaja de este último parece ser que necesita ejecutar un comando menos. El primero vuelve a darle el repo completo de su equipo a su disco duro.
Consulte los manuales de Git para saber cómo puede actualizar sus sucursales remotas. (rama remota NB puede estar delante del ordenador. No tiene que estar en un equipo remoto. Su rama puede ser la rama remota también, pero esto restringe el flujo de trabajo.)
Es posible que el próximo desee para fusionar el archivo específico de tu amigo en tu sucursal. En ese caso, es suficiente con conocer las 5 primeras letras del compromiso de su amigo para fusionar el archivo.
[no estoy seguro de cómo se puede hacer lo siguiente:] Tiene que ejecutar, por ejemplo
git merge 76a32
Usted puede obtener la siguiente salida
CONFLICT (add/add): Merge conflict in shells/externalPrograms
Auto-merging shells/smallApps/extract
CONFLICT (add/add): Merge conflict in shells/smallApps/extract
Auto-merging shells/smallApps/extract~
CONFLICT (add/add): Merge conflict in shells/smallApps/extract~
Automatic merge failed; fix conflicts and then commit the result.
En ese caso, sus archivos difieren significativamente de los de su amigo y Git no puede decidir qué archivo tomar. Tiene que ejecutar al parecer el siguiente
git rebase
y se obtiene
shells/smallApps/extract: needs merge
shells/smallApps/extract~: needs merge
cannot rebase: you have unstaged changes
Ejercicio 1: Sin embargo, ahora estoy en atascado, ya que mi TIG no muestra de mi amigo cometer en mi árbol de Git . ¿Cómo se puede obtener commit 76a32 de su amigo en su árbol Git qué rama está en su Git?
Es posible que haya resuelto el problema. El problema estaba en que lo ignoré para resolver los conflictos sobre los cuales Git me dio notificaciones. Google guarda el día de nuevo en el official Git site:
Si hay conflictos - por ejemplo, si el mismo archivo se modifica en dos formas diferentes en la rama remota y la filial local - a continuación, son advertido -
El siguiente problema es limpiar las partes problemáticas y fusionar nuevamente. Usted ve algo similar a lo siguiente en sus archivos problemáticos: ¡diviértase! (Finalmente llegar a problemas reales;)
alt text http://dl.getdropbox.com/u/175564/exampleGitProblemSolving.png
problema en diffing y la fusión dotfiles en FileMerge de Mac
que necesitaba para actualizar mi Git, ya que sólo la más reciente Git tiene difftool -mando. Puede encontrar una solución en el thread.
Difftool le permite iniciar dotFiles en FileMerge desde la terminal. No puedes acceder a ellos en GUI. Funciona como
git difftool master:README dev:README
problema con su cuenta de Github después de añadir una nueva cuenta remota
Su cuenta de Github pueden haber sido desaparecido en .git/config. En ese caso, es necesario ejecutar el siguiente código
git remote add -f YourUserName [email protected]
A continuación, puede notar que no se puede git-push normalmente por
git push origin master
Usted puede obtener el siguiente mensaje de error
fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
También puede probar los siguientes comandos para resolver el problema
git push Masi master
y todos los 3 en 2 permutaciones de Masi, maestro y origen. Sin embargo, ninguno de los comandos no funcionó.
Exercise 2: ¿Cómo se puede comprometer con su cuenta github ya que tiene un equipo en su lista remota?
Origen es un nombre corto para su git-repo externo real, por ejemplo, en Github. El contenido de su origen de variable puede haber sido reemplazado por otro repositorio remoto. En este caso, recomiendo que le permite crear una nueva variable por
git remote add github [email protected]:myLogin/myProject.git
Tenga en cuenta que usted podría tener origen2 en el lugar de GitHub. Origin es solo una convención al nombrar el repositorio.
continuación, puede simplemente ejecutar
git push github master
Es posible que tenga una contraseña en su clave ssh. Si tiene, puede obtener un permiso denegado. Si lo hizo, consulte el thread.
Acepto esta respuesta, ya que es suficiente "en profundidad". Sin embargo, consulte la respuesta de Samuel y mi respuesta sobre ejemplos concretos para resolver el problema. -- ¡Gracias por su respuesta! –
@VonC: ** ¿Funciona el módulo ruby "branches remotas" en su Ubuntu Jaunty? ** Obtiene el comando 'grb not found' después de instalar rubygems y todas las dependencias enumeradas en el archivo README. –
@Masi, sí, debería (aunque no probado directamente): 'sudo gem install git_remote_branch --include-dependencies' debería hacerlo, siempre que su' $ PATH' haga referencia al directorio 'bin' de ruby para los scripts. – VonC