2012-03-13 11 views
19

Tengo un servidor en el que hay algunas configuraciones que no sé bien dónde acabo de extraer y obtiene lo que está en un repositorio github, luego lo reinicio para poder implementarlo.Git pull no tirando de todo

Lo que pasa es que hay una confirmación que no es la más reciente, que realmente no está en mi servidor. Los archivos no están en .gitignore. ¿Cómo puedo asegurar que un tirón, sacó un compromiso?

Realmente no sé cómo solucionarlo, estoy pensando en reiniciar todo :(

14:41][[email protected]] someserver_dir (master)$ git status 
# On branch master 
# Changes not staged for commit: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
# modified: Gemfile 
# modified: Gemfile.lock 
# modified: config/assets.yml 
# modified: config/database.yml 
# 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
# randomfiles 
+0

Más información hará que sea más fácil de responder. tu pregunta. ¿Qué hace 'git status' sho ¿tú? ¿Estás en la rama correcta localmente? Por ejemplo, si estás mirando la rama 'master' en el servidor, ¿estás registrado en' master' localmente? ¿Qué tal 'git log origin/master..master'? –

+0

¿El repositorio de git es público? Si es así, proporcione una URL. –

+0

no es público, el estado de git me muestra que todo está bien, solo hay una rama. – thiagofm

Respuesta

51

Si siempre quiere que su versión de servidor para reflejar una confirmación de su cesión temporal, es probable que sea mejor utilizar git reset en lugar de git pull - de esa manera nunca se invoca funcionalidad de combinación, pero en su lugar establecer todos los archivos a exactamente lo que son en el comprometerse a restablecer a Por ejemplo:

git fetch origin master 
git reset --hard FETCH_HEAD 
+4

Siempre olvido este comando, así que sigo volviendo a este hilo. Solo quería agregar que el cambio de "maestro" a cualquier otro nombre de sucursal también funciona, si desea recuperar todo desde una sucursal específica. – mdegges

+0

, también podría restablecer a una rama específica, por lo que git reset --hard origin/master también funciona, por lo que cualquier rama que especifique. (Es bastante gracioso verme hacer esta pregunta hace 5 años, recuerdo que estaba administrando un servidor remoto que usaba git para implementar y terminaba en un mal estado ... jaja) – thiagofm