[git] Resuelva el problema de inconsistencia entre el almacén local y el almacén remoto

Tabla de contenido

Método 1: (no verificado)

Método 2: (verificado)

Método 3: Convencional

1. Lleve el código de almacén remoto al local como una nueva sucursal temporal local

2. Compare la rama de esta temporal con nuestra rama principal para ver qué es diferente y cuáles son los conflictos

3. Combinar la nueva rama temporal con la rama maestra local

4. Vuelva a enviar la sucursal maestra local al almacén remoto

5. Eliminar sucursal

Método 4. Cuando no se realiza ninguna confirmación

 1. Almacene todos los cambios en la rama actual

2. Ver el alijo existente

3. Aplique el alijo especificado al espacio de trabajo, pero no elimine el alijo

4. Expansión:

4.1 Libere el último contenido guardado y extraiga el contenido guardado de la pila (es decir, saque la parte superior de la pila, libere el último contenido guardado y elimine el contenido guardado)

4.2 Almacenar modificaciones de archivos especificados

4.3 Comprobar qué archivos han sido modificados por una pila de inserción

4.4 Ver el contenido modificado del almacenamiento especificado

4.5 Eliminar todo el almacenamiento en caché


Olvídese de extraer el código del almacén remoto, utilice la extracción para informar un error:error: Your local changes to the following files would be overwritten by merge:

Si no desea que se sobrescriba el código que acaba de escribir, puede resolverlo así:

Método 1: (no verificado)

Si desea conservar el código que acaba de modificar localmente y extraiga el código del servidor git al local (el código que acaba de modificar localmente se archivará temporalmente)

git stash
git pull origin master
git stash pop

De esta manera, el código en el servidor se actualiza localmente y el código que modificó localmente no se sobrescribe.Luego, use el comando addpara  actualizar el código local en el servidor.commitpush

Método 2: (verificado)

Si desea cubrir completamente el código local y solo mantener el código del lado del servidor, vuelva directamente a la versión anterior y luego continúe pull:

git reset --hard
git pull origin master

Nota: donde origin master representa la rama principal de git.

Método 3: Convencional

1. Lleve el código de almacén remoto al local como una nueva sucursal temporal local

git fetch origin master:temp 

 expandir:

  rama git sin parámetros: enumere las ramas que ya existen localmente y agregue una marca "*" delante de la rama actual.

  git branch -r enumera las sucursales remotas, por ejemplo:

  git branch -a enumera las sucursales locales y remotas, por ejemplo:

  

  git branch -m | -M oldbranch newbranch Cambie el nombre de la rama, si la rama de nombre newbranch ya existe, debe usar -M para forzar el cambio de nombre, de lo contrario, use -m para cambiar el nombre.

2. Compare la rama de esta temporal con nuestra rama principal para ver qué es diferente y cuáles son los conflictos

git diff temp

3. Combinar la nueva rama temporal con la rama maestra local

git merge temp

Si hay archivos en conflicto que no se pueden fusionar automáticamente, debe abrirlos y modificarlos usted mismo. El formato básico del archivo de conflicto es <<<<<<< a ======= es el contenido del archivo antes de fusionar la rama actual, y ======= a >>>>> >> está en otras ramas Para el contenido revisado, debe elegir una de estas dos versiones y luego eliminar los símbolos de marca juntos.

Después de resolver manualmente los conflictos, puede enviar a la sucursal remota.
 

4. Vuelva a enviar la sucursal maestra local al almacén remoto

git push -u origin master

5. Eliminar sucursal

git branch --delete temp
# 命令删除本地分支

# 这个好像也可以
git branch -D temp  //删除本地temp分支

extensión:

Use el comando "git push origin --delete branch" para eliminar la rama remota;

Utilice el comando "git branch --delete --remotes" para eliminar la rama de seguimiento.

Método 4. Cuando no se realiza ninguna confirmación

Por lo general, nos encontraremos con ese escenario. Estamos implementando una función pero no la hemos terminado. En este momento, necesitamos modificar el error. No queremos enviar nuestra modificación ahora para agregar demasiados registros de registro inútiles, pero no podemos regresar si no lo enviamos a este estado. En este momento, puede usar el comando git sta sh para guardar el contenido del espacio de trabajo local y volver al estado posterior a la confirmación anterior.

 El siguiente es un pequeño arreglo, primero mire la parte 1-2-3-4 a continuación y luego mire este comando

# 保存当前未commit的代码
git stash

# 保存当前未commit的代码并添加备注
git stash save "备注的内容"

# 列出stash的所有记录
git stash list

# 删除stash的所有记录
git stash clear

# 应用最近一次的stash
git stash apply

# 应用最近一次的stash,随后删除该记录
git stash pop

# 删除最近的一次stash
git stash drop

 1. Almacene todos los cambios en la rama actual

git stash save -m "标识注释"

2. Ver el alijo existente

git stash list

3. Aplique el alijo especificado al espacio de trabajo, pero no elimine el alijo

git stash apply 对应stash的名字  # 上面的标识

# 或者
 git stash apply stash@{0}


删除则是将apply换成drop

expandir:

De forma predeterminada, git stash almacena en caché los siguientes archivos:

        Modificaciones agregadas al área de preparación
        Modificaciones rastreadas por Git pero no agregadas al área de preparación

Pero los siguientes archivos no se almacenan en caché:


        Archivos que se ignoran para         nuevos archivos en el directorio de trabajo

4. Expansión:

4.1 Libere el último contenido guardado y extraiga el contenido guardado de la pila (es decir, saque la parte superior de la pila, libere el último contenido guardado y elimine el contenido guardado)

git stash pop

4.2 Almacenar modificaciones de archivos especificados

git stash push .../.../ .../.../ .../.../

     /.../... es la ruta del archivo modificado que desea almacenar. Cuando haya modificado muchos archivos, pero solo desea almacenar algunos archivos modificados, puede agregar la ruta después de git stash push. Si hay varios archivos , simplemente agregue espacios entre estas rutas de archivo

4.3 Comprobar qué archivos han sido modificados por una pila de inserción

Cuando hay demasiadas modificaciones en el almacenamiento, es posible que olvide qué archivos se han modificado en un determinado almacenamiento. Si desea comprobar qué archivos se han modificado en un determinado almacenamiento, puede utilizar git stash show stash@{0} comando, stash@{0} es la modificación almacenada más recientemente, si desea ver otro almacenamiento, solo necesita cambiar el número de stash@{0}, como stash@{5}. Como se muestra en la imagen de arriba , primero uso git stash list para ver la lista de almacenamiento y luego uso el comando git stash show stash@{0} Mirando la primera modificación, puede ver que solo modifiqué un archivo test.txt en la tienda de modificaciones más reciente .

git stash show stash@{0} 

4.4 Ver el contenido modificado del almacenamiento especificado

Si desea ver todo el contenido de una modificación oculta, en lugar de solo ver qué archivos se han modificado, por ejemplo, para ver todos los archivos y contenidos de la última modificación oculta, puede usar git stash show -p stash@ {0} comando para ver.

git stash show -p stash@{0}

4.5 Eliminar todo el almacenamiento en caché

git stash clear

Supongo que te gusta

Origin blog.csdn.net/legend818/article/details/130065179
Recomendado
Clasificación