├── tsconfig.json ├── bun.lockb ├── public ├── og.png ├── cover.jpg ├── cover.webp ├── favicon.svg └── amazon.svg ├── src ├── env.d.ts ├── services │ └── function.ts ├── components │ ├── Avatar.astro │ ├── Testimonial.astro │ ├── Card.astro │ ├── BuyButton.astro │ ├── Book.astro │ └── AmazonLogo.astro ├── pages │ └── index.astro ├── layouts │ └── Layout.astro └── sections │ ├── Footer.astro │ ├── Hero.astro │ ├── Testimonials.astro │ └── TableOfContents.astro ├── .vscode ├── extensions.json └── launch.json ├── tailwind.config.mjs ├── .prettierrc.mjs ├── .gitignore ├── eslint.config.js ├── astro.config.mjs ├── package.json └── README.md /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "astro/tsconfigs/strict" 3 | } -------------------------------------------------------------------------------- /bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/midudev/aprendiendogit.dev/main/bun.lockb -------------------------------------------------------------------------------- /public/og.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/midudev/aprendiendogit.dev/main/public/og.png -------------------------------------------------------------------------------- /public/cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/midudev/aprendiendogit.dev/main/public/cover.jpg -------------------------------------------------------------------------------- /public/cover.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/midudev/aprendiendogit.dev/main/public/cover.webp -------------------------------------------------------------------------------- /src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /src/services/function.ts: -------------------------------------------------------------------------------- 1 | function addition(a: number, b: number): number { 2 | return a + b; 3 | } 4 | 5 | addition(1, 3) -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["astro-build.astro-vscode"], 3 | "unwantedRecommendations": [] 4 | } 5 | -------------------------------------------------------------------------------- /tailwind.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | export default { 3 | content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}'], 4 | theme: { 5 | extend: {}, 6 | }, 7 | plugins: [], 8 | } 9 | -------------------------------------------------------------------------------- /.prettierrc.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import("prettier").Config} */ 2 | export default { 3 | plugins: ["prettier-plugin-astro"], 4 | overrides: [ 5 | { 6 | files: "*.astro", 7 | options: { 8 | parser: "astro", 9 | }, 10 | }, 11 | ], 12 | }; 13 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "command": "./node_modules/.bin/astro dev", 6 | "name": "Development server", 7 | "request": "launch", 8 | "type": "node-terminal" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /src/components/Avatar.astro: -------------------------------------------------------------------------------- 1 | --- 2 | const { initials } = Astro.props; 3 | --- 4 |
5 | 6 | {initials} 7 | 8 |
-------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # build output 2 | dist/ 3 | 4 | # generated types 5 | .astro/ 6 | 7 | # dependencies 8 | node_modules/ 9 | 10 | # logs 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | # environment variables 17 | .env 18 | .env.production 19 | 20 | # macOS-specific files 21 | .DS_Store 22 | 23 | # jetbrains setting folder 24 | .idea/ 25 | -------------------------------------------------------------------------------- /eslint.config.js: -------------------------------------------------------------------------------- 1 | import eslintPluginAstro from 'eslint-plugin-astro'; 2 | 3 | export default [ 4 | // add more generic rule sets here, such as: 5 | // js.configs.recommended, 6 | ...eslintPluginAstro.configs.recommended, 7 | { 8 | rules: { 9 | // override/add rules settings here, such as: 10 | // "astro/no-set-html-directive": "error" 11 | } 12 | } 13 | ]; -------------------------------------------------------------------------------- /astro.config.mjs: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "astro/config"; 2 | import tailwind from "@astrojs/tailwind"; 3 | 4 | import vercel from "@astrojs/vercel/serverless"; 5 | 6 | // https://astro.build/config 7 | export default defineConfig({ 8 | integrations: [tailwind()], 9 | output: "hybrid", 10 | adapter: vercel(), 11 | experimental: { 12 | serverIslands: true, 13 | }, 14 | }); 15 | -------------------------------------------------------------------------------- /public/favicon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/pages/index.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import Layout from "../layouts/Layout.astro" 3 | import Hero from "../sections/Hero.astro" 4 | import TableOfContents from "../sections/TableOfContents.astro" 5 | import Testimonials from "../sections/Testimonials.astro" 6 | import Footer from "../sections/Footer.astro" 7 | --- 8 | 9 | 10 |
11 | 12 | 13 | 14 |
15 |
16 |
17 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "aprendiendogit-dev", 3 | "type": "module", 4 | "version": "0.0.1", 5 | "scripts": { 6 | "dev": "astro dev", 7 | "start": "astro dev", 8 | "build": "astro build", 9 | "preview": "astro preview", 10 | "astro": "astro" 11 | }, 12 | "dependencies": { 13 | "@astrojs/check": "0.8.2", 14 | "@astrojs/tailwind": "5.1.0", 15 | "@astrojs/vercel": "7.7.2", 16 | "astro": "4.12.1", 17 | "tailwindcss": "3.4.6", 18 | "typescript": "5.5.3" 19 | }, 20 | "devDependencies": { 21 | "@typescript-eslint/parser": "7.16.1", 22 | "eslint": "9.7.0", 23 | "eslint-plugin-astro": "1.2.3", 24 | "eslint-plugin-jsx-a11y": "6.9.0", 25 | "prettier": "3.3.3", 26 | "prettier-plugin-astro": "0.14.1" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/components/Testimonial.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import Avatar from "./Avatar.astro"; 3 | 4 | const { title, quote, author, authorInfo, avatarImage, avatarInitials } = Astro.props; 5 | --- 6 | 7 |
8 |
9 |

{title}

10 |

{quote}

11 |
12 |
13 | { 14 | avatarImage 15 | ? {`Fotografía 16 | : 17 | } 18 |
19 |
{author}
20 |
{authorInfo}
21 |
22 |
23 |
24 | -------------------------------------------------------------------------------- /src/components/Card.astro: -------------------------------------------------------------------------------- 1 | --- 2 | interface Props { 3 | title: string; 4 | body: string; 5 | href: string; 6 | } 7 | 8 | const { href, title, body } = Astro.props; 9 | --- 10 | 11 | 22 | 62 | -------------------------------------------------------------------------------- /src/layouts/Layout.astro: -------------------------------------------------------------------------------- 1 | --- 2 | interface Props { 3 | title: string 4 | } 5 | 6 | const { title } = Astro.props 7 | --- 8 | 9 | 10 | 11 | 12 | 13 | 17 | 18 | 19 | 20 | 24 | 25 | 26 | 27 | 28 | 29 | 33 | 34 | {title} 35 | 36 | 37 | 38 | 39 | 40 | 41 | 70 | -------------------------------------------------------------------------------- /src/components/BuyButton.astro: -------------------------------------------------------------------------------- 1 | --- 2 | const country = Astro.request.headers.get("X-Vercel-IP-Country") ?? "CO" 3 | 4 | const BOOK_INFO: Record = { 5 | ES: { 6 | url: "https://midu.link/libro", 7 | title: "Comprar libro físico en Amazon España", 8 | }, 9 | MX: { 10 | url: "https://midu.link/libro-mx", 11 | title: "Comprar libro físico en Amazon México", 12 | }, 13 | REST: { 14 | url: "https://midu.link/libro-latam", 15 | title: "Comprar libro físico en Amazon ", 16 | }, 17 | } as const 18 | 19 | const { url, title } = BOOK_INFO[country] ?? BOOK_INFO.REST 20 | --- 21 | 22 | 29 | {title} 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/components/Book.astro: -------------------------------------------------------------------------------- 1 |
2 |
3 | Portada del libro Aprendiendo Git 8 |
9 |
10 | 11 | 102 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Astro Starter Kit: Basics 2 | 3 | ```sh 4 | npm create astro@latest -- --template basics 5 | ``` 6 | 7 | [![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/basics) 8 | [![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/astro/tree/latest/examples/basics) 9 | [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/withastro/astro?devcontainer_path=.devcontainer/basics/devcontainer.json) 10 | 11 | > 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun! 12 | 13 | ![just-the-basics](https://github.com/withastro/astro/assets/2244813/a0a5533c-a856-4198-8470-2d67b1d7c554) 14 | 15 | ## 🚀 Project Structure 16 | 17 | Inside of your Astro project, you'll see the following folders and files: 18 | 19 | ```text 20 | / 21 | ├── public/ 22 | │ └── favicon.svg 23 | ├── src/ 24 | │ ├── components/ 25 | │ │ └── Card.astro 26 | │ ├── layouts/ 27 | │ │ └── Layout.astro 28 | │ └── pages/ 29 | │ └── index.astro 30 | └── package.json 31 | ``` 32 | 33 | Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name. 34 | 35 | There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components. 36 | 37 | Any static assets, like images, can be placed in the `public/` directory. 38 | 39 | ## 🧞 Commands 40 | 41 | All commands are run from the root of the project, from a terminal: 42 | 43 | | Command | Action | 44 | | :------------------------ | :----------------------------------------------- | 45 | | `npm install` | Installs dependencies | 46 | | `npm run dev` | Starts local dev server at `localhost:4321` | 47 | | `npm run build` | Build your production site to `./dist/` | 48 | | `npm run preview` | Preview your build locally, before deploying | 49 | | `npm run astro ...` | Run CLI commands like `astro add`, `astro check` | 50 | | `npm run astro -- --help` | Get help using the Astro CLI | 51 | 52 | ## 👀 Want to learn more? 53 | 54 | Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat). 55 | -------------------------------------------------------------------------------- /src/sections/Footer.astro: -------------------------------------------------------------------------------- 1 | 43 | -------------------------------------------------------------------------------- /src/sections/Hero.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import AmazonLogo from "../components/AmazonLogo.astro" 3 | import Book from "../components/Book.astro" 4 | import BuyButton from "../components/BuyButton.astro" 5 | --- 6 | 7 |
8 |
11 |
12 | 13 | 14 | El n.º 1 más vendido 15 | 16 |

19 | El mejor libro para Aprender Git y GitHub 20 |

21 |

24 | Hoy en día es imposible imaginar el desarrollo de software sin Git. 25 | Este libro te enseñará desde lo más básico hasta estrategias 26 | avanzadas para trabajar en equipo. 27 |

28 |

31 | Más de 300 páginas de contenido, con ejemplos e ilustraciones. 32 |

33 | 52 |
53 | 54 |
55 | 56 |
57 |
58 |
-------------------------------------------------------------------------------- /public/amazon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/AmazonLogo.astro: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/sections/Testimonials.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import Testimonial from "../components/Testimonial.astro"; 3 | --- 4 | 5 |
6 |
7 |
8 |

Reseñas del libro

9 |

Esto es lo que dicen los lectores del libro de Aprendiendo Git y GitHub

10 |
11 |
12 |
13 | 20 | 27 | 34 |
35 |
36 | 43 | 50 | 57 |
58 |
59 | 66 | 73 | 80 | 81 | 82 |
83 |
84 |
85 |
86 | -------------------------------------------------------------------------------- /src/sections/TableOfContents.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import BuyButton from "../components/BuyButton.astro" 3 | --- 4 | 5 |
6 |
7 |
8 |

11 | Tabla de contenido 12 |

13 |
14 | 15 |
18 |
19 |

20 | Capítulo 1: Un poco de teoría 21 |

22 |

25 | ¿Qué es Git y por qué es tan importante? Historia, fundamentos, 26 | conceptos básicos y diferencias con GitHub. 27 |

28 |
29 | 30 |
31 |

32 | Capítulo 2: Instalando y Configurando Git 33 |

34 |

37 | Instalación de la línea de comandos en diferentes sistemas 38 | operativos, configuración más importante para el uso de Git. 39 |

40 |
41 | 42 |
43 |

44 | Capítulo 3: Trabajando con Git de forma local 45 |

46 |

49 | ¿Cómo inicio un nuevo proyecto de Git en local? Trabajando en nuestro 50 | directorio de trabajo, área de staging, commits, deshacer cambios, 51 | ignorar archivos, etc. 52 |

53 |
54 | 55 |
56 |

57 | Capítulo 4: Ramas en Git 58 |

59 |

62 | Hablamos del concepto de ramas. Cómo crearlas, fusionarlas, trabajar 63 | con ellas, resolver conflictos e incluso borrarlas. 64 |

65 |
66 | 67 |
68 |

69 | Capítulo 5: Rebase 70 |

71 |

74 | Uno de los conceptos más avanzados y problemáticos de Git explicado 75 | paso a paso. ¿Para qué sirve? ¿Qué soluciona y qué peligros tiene? Te 76 | explico cuándo usarlo y cómo evitar problemas con él. 77 |

78 |
79 | 80 |
81 |

82 | Capítulo 6: Trabajando con Git de forma remota 83 |

84 |

87 | Usando GitHub como repositorio remoto. ¿Qué es GitHub? ¿Cómo usarlo? 88 | ¿Cómo configurarlo? Diferencia entre repositorio local y remoto. 89 | Sincronizar ramas, enlace entre repositorios, etc. 90 |

91 |
92 | 93 |
94 |

95 | Capítulo 7: Configurando conexión SSH con GitHub 96 |

97 |

100 | Aprende a usar GitHub desde tu terminal usando SSH. ¿Qué es SSH? ¿Cómo 101 | configurarlo? ¿Cómo usarlo? Todo paso a paso. 102 |

103 |
104 | 105 |
106 |

107 | Capítulo 8: Cómo contribuir a un proyecto de código abierto 108 |

109 |

112 | Aprende a participar en proyectos de GitHub que permiten 113 | colaboraciones. Descubre las mejores prácticas, consejos y trucos para 114 | contribuir de manera efectiva. 115 |

116 |
117 | 118 |
119 |

120 | Capítulo 9: Flujo de trabajo y estrategias de ramas en Git 121 |

122 |

125 | ¿Cómo se trabaja en equipo en un proyecto colaborativo en Git? Más 126 | allá de Git Flow, descubre otras estrategias para trabajar en equipo 127 | como Trunk Based Development y Ship/Show/Ask. 128 |

129 |
130 | 131 |
132 |

133 | Capítulo 10: Buenas prácticas al trabajar con Git 134 |

135 |

138 | Escribe buenos commits, crea ramas fáciles de mantener, revisa tu 139 | historial de commits, aprende a revisar peticiones de commits y más. 140 |

141 |
142 | 143 |
144 |

145 | Capítulo 11: Stash, el almacén temporal de cambios de Git 146 |

147 |

150 | Entiende cómo puedes almacenar y recuperar cambios en Git usando git 151 | stash. 152 |

153 |
154 | 155 |
156 |

157 | Capítulo 12: Trucos de Git 158 |

159 |

162 | Saca el máximo partido a Git con trucos y consejos que te ayudan en tu 163 | día a día. 164 |

165 |
166 | 167 |
168 |

169 | Capítulo 13: Errores comunes en Git y sus soluciones 170 |

171 |

174 | Marca la diferencia entendiendo y solucionando los problemas que más 175 | ocurren al trabajar en proyectos de Git. 176 |

177 |
178 |
179 | 180 |
181 | 182 |
183 | Comprar libro físico en Amazon 184 | 185 |
186 |
187 |
188 |
189 |
190 | --------------------------------------------------------------------------------