Flujo de trabajo Git para desarrolladores C#: del caos al orden

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Flujo de trabajo Git para desarrolladores C#: cómo dejar de temer las fusiones y empezar a vivir



¿Alguna vez ha pasado medio día tratando de averiguar quién y cuándo reescribió su amado método CalculateOrderTotal()? ¿O quizás ha subido una "corrección urgente" directamente a master, y luego la producción falló con un error NullReferenceException? ¿Le suena familiar? Bienvenido al club de desarrolladores C# que intentan sobrevivir al caos de Git sin un flujo de trabajo claro.



Si cree que Git es solo git add . y git push, se está perdiendo lo esencial. Un flujo de trabajo Git correcto no es un debate religioso, sino una herramienta que ahorra nervios, tiempo y dinero. Especialmente en el mundo de C#, donde tenemos soluciones (.sln), proyectos (.csproj) y un montón de paquetes NuGet que tienden a entrar en conflicto.



En este artículo, le mostraré estrategias de ramificación funcionales, ejemplos de código reales para C# y le contaré cómo automatizar las tareas rutinarias. ¡Allá vamos!



¿Por qué los proyectos C# requieren un enfoque especial para Git?



Cuando trabaja con C#, no solo trata con archivos de texto. Tiene:



  • Solución (.sln) — un archivo que hace referencia a todos los proyectos. Si dos desarrolladores agregan un nuevo proyecto al mismo tiempo, el conflicto de fusión está garantizado.
  • Archivos .csproj — archivos XML que se actualizan al agregar paquetes NuGet o cambiar la plataforma de destino. Fusionar estos archivos manualmente es un dolor de cabeza.
  • appsettings.json y web.config — archivos de configuración que a menudo contienen cadenas de conexión. No deben confirmarse, pero todos lo olvidan.
  • Carpetas bin/ y obj/ — si las confirma una vez, sus colegas lo maldecirán para siempre.


Por lo tanto, su flujo de trabajo Git para C# debe estar meticulosamente planificado. Y comienza con un .gitignore correcto.



Paso 1: Configuración de .gitignore para C#



El .gitignore estándar para C# se puede descargar de GitHub/gitignore, pero agregaré algunas líneas importantes que a menudo se pasan por alto:



# Archivos de configuración con secretos (¡no confirmar!)appsettings.Development.jsonappsettings.Local.jsonsecrets.json

# Archivos generados por ReSharper o Rider*.DotSettings.user*.DotSettings

# Paquetes NuGet (caché)packages/*.nupkg

# Resultados de pruebasTestResults/*.trx

# Carpetas de Visual Studio.vs/*.suo*.user*.sln.docstates


¿Por qué es importante esto? Imagine que confirma appsettings.Development.json con una cadena de conexión de base de datos local. Un colega lo descarga y su aplicación falla porque no tiene esa base de datos. Parece un descuido menor, pero le cuesta una hora de trabajo.



Elegir una estrategia de ramificación para el equipo C#



Existen varios flujos de trabajo Git populares. Para proyectos C#, recomiendo dos estrategias principales: Git Flow y Desarrollo basado en tronco. Analicémoslas con ejemplos.



Opción 1: Git Flow (clásico para proyectos grandes)



Git Flow es como SOLID para Git. Es ideal cuando tiene lanzamientos claros (por ejemplo, versión 2.1.0, 2.2.0). Las ramas se ven así:



  • main — solo código estable.
  • develop — rama de integración.
  • feature/XXX-123-add-new-api — funcionalidades desde develop.
  • release/2.1.0 — preparación del lanzamiento.
  • hotfix/2.0.1-critical-bug — correcciones urgentes desde main.


Ejemplo para C#: está trabajando en una nueva función "Cálculo de descuento por código promocional".



# Crear una funcionalidad desde developgit checkout developgit pullgit checkout -b feature/ABC-42-add-promo-discount

# Escribir código en C#// DiscountService.cspublic class DiscountService{ public decima

Blogs

Book Recommendations