1 00:00:00,000 --> 00:00:05,520 2 00:00:05,520 --> 00:00:08,170 >> ANNA WHITNEY: Así que voy para hablar acerca de cómo usar Git, 3 00:00:08,170 --> 00:00:10,480 y por qué usted debe cuidar. 4 00:00:10,480 --> 00:00:13,790 Git es una herramienta de control de versiones. 5 00:00:13,790 --> 00:00:17,810 Probablemente usted está familiarizado con algo así como Google Docs o Dropbox, 6 00:00:17,810 --> 00:00:23,190 otras cosas que le permiten compartir versiones de las cosas y hacer un seguimiento de los cambios 7 00:00:23,190 --> 00:00:25,315 usted ha hecho a diferentes documentos. 8 00:00:25,315 --> 00:00:27,890 Lo que pasa es GitHub que está optimizado para el código 9 00:00:27,890 --> 00:00:33,580 y le da una gran cantidad de control sobre exactamente qué cambios 10 00:00:33,580 --> 00:00:38,150 a mantener y qué cambios te deshaces de y cuyos cambios se incorporan. 11 00:00:38,150 --> 00:00:42,840 Así que esa es la gran razón por la de por qué te gustaría usar Git. 12 00:00:42,840 --> 00:00:46,980 >> Porque usted no puede realmente código muy bien en Google Docs. 13 00:00:46,980 --> 00:00:50,850 Usted está limitado a esa interfaz. 14 00:00:50,850 --> 00:00:54,920 Es un poco más difícil de incorporar, como OK, alguien 15 00:00:54,920 --> 00:00:57,870 hecho este cambio y alguien otro hecho que este otro cambio. 16 00:00:57,870 --> 00:01:00,470 Y desea mantener el primera mitad del primer cambio 17 00:01:00,470 --> 00:01:05,269 y la segunda mitad del segundo cambio y tiene todo lo demás permanece igual. 18 00:01:05,269 --> 00:01:10,820 Git te permite hacer las cosas muy precisa. 19 00:01:10,820 --> 00:01:17,500 Y por lo que si usted está trabajando en el software, es bastante común el uso de Git en el trabajo. 20 00:01:17,500 --> 00:01:22,210 >> Y es más o menos la mejor manera hacer la colaboración en software. 21 00:01:22,210 --> 00:01:25,180 Hay algunos otros de control de versiones herramientas que puede utilizar en su lugar, 22 00:01:25,180 --> 00:01:27,221 pero algo como esto va a ser necesario. 23 00:01:27,221 --> 00:01:29,130 Porque una vez más, Google Docs en realidad no 24 00:01:29,130 --> 00:01:35,210 cortarlo cuando estás tratando de escribir código en colaboración con otros programadores. 25 00:01:35,210 --> 00:01:38,975 Tuvimos esta reciente XKCD que era bastante relevante. 26 00:01:38,975 --> 00:01:42,050 27 00:01:42,050 --> 00:01:46,390 Así que espero que al final de esta presentación, 28 00:01:46,390 --> 00:01:51,022 será clear-- un poco clearer-- no sólo una lista de comandos 29 00:01:51,022 --> 00:01:53,730 que se puede ejecutar para tener todo a trabajar, pero un poco más 30 00:01:53,730 --> 00:01:58,950 de la razón de ser por qué estos comandos funcionan. 31 00:01:58,950 --> 00:02:02,400 >> Así que vamos a saltar sobre cómo que en realidad utilizamos Git. 32 00:02:02,400 --> 00:02:07,920 Y, de hecho, me voy para que aparezca brevemente aquí. 33 00:02:07,920 --> 00:02:16,720 Si usted tiene su computadora portátil, usted quiere sacarla y abrir el IDE CS50. 34 00:02:16,720 --> 00:02:18,780 Estamos sobre todo vamos a ser trabajando en el terminal, 35 00:02:18,780 --> 00:02:21,520 no tanto, sólo estaremos haciendo un poco en los archivos. 36 00:02:21,520 --> 00:02:26,100 Entonces, ¿qué vas a querer de hacer, sólo para obtener establecido aquí, 37 00:02:26,100 --> 00:02:37,390 es la primera que va a abrir su Clave SSH file-- el archivo de clave pública. 38 00:02:37,390 --> 00:02:43,020 >> No sé si usted ha hablado mucho acerca de las claves SSH, sino lo que quieres hacer 39 00:02:43,020 --> 00:02:44,250 Es esto. 40 00:02:44,250 --> 00:02:45,220 ¿De acuerdo? 41 00:02:45,220 --> 00:02:49,749 Y aparecerá este larga cadena de caracteres, 42 00:02:49,749 --> 00:02:51,040 y lo que desea copiarlos. 43 00:02:51,040 --> 00:02:59,230 44 00:02:59,230 --> 00:03:00,350 Copie todo el asunto. 45 00:03:00,350 --> 00:03:01,730 Sólo hacer eso. 46 00:03:01,730 --> 00:03:10,810 Y entonces, si usted va a su perfil en GitHub, usted puede ir a Editar Perfil, 47 00:03:10,810 --> 00:03:14,620 y luego bajo las claves SSH, vas a añadir una clave SSH. 48 00:03:14,620 --> 00:03:20,030 49 00:03:20,030 --> 00:03:23,220 Y puede que el título CS50 IDE. 50 00:03:23,220 --> 00:03:26,760 51 00:03:26,760 --> 00:03:28,070 Tiene sentido? 52 00:03:28,070 --> 00:03:30,800 ¿Todos conseguir ese paso? 53 00:03:30,800 --> 00:03:36,350 >> Esto es sólo para que luego, cuando estamos utilizando el repositorio en IDE, 54 00:03:36,350 --> 00:03:39,630 podemos acceder a él directamente y no tener que preocuparse de escribir en nuestra contraseña 55 00:03:39,630 --> 00:03:41,850 cada vez que lo usamos. 56 00:03:41,850 --> 00:03:42,730 OKAY. 57 00:03:42,730 --> 00:03:44,470 Así que ahora cerramos eso. 58 00:03:44,470 --> 00:03:48,680 59 00:03:48,680 --> 00:03:53,120 Si alguien más quiere que yo añado al repositorio GitHub, 60 00:03:53,120 --> 00:03:56,650 si acabas de llegar, no puedo hacer eso ahora. 61 00:03:56,650 --> 00:04:00,860 Si usted tiene una cuenta de GitHub y usted No me has dicho tu nombre de usuario GitHub, 62 00:04:00,860 --> 00:04:01,695 ahora es el momento. 63 00:04:01,695 --> 00:04:05,578 64 00:04:05,578 --> 00:04:07,560 ¿Nadie? 65 00:04:07,560 --> 00:04:08,610 OKAY. 66 00:04:08,610 --> 00:04:10,320 Entonces voy a seguir adelante. 67 00:04:10,320 --> 00:04:11,610 >> Correcto. 68 00:04:11,610 --> 00:04:16,190 Así que primero vamos a hablar de ¿Cómo funciona un repositorio. 69 00:04:16,190 --> 00:04:18,649 Usted tiene un repositorio público remoto. 70 00:04:18,649 --> 00:04:21,640 Esto es lo que yo era sólo mostrando en GitHub. 71 00:04:21,640 --> 00:04:23,300 He creado un repositorio. 72 00:04:23,300 --> 00:04:26,840 Está alojado en algún lugar de los servidores de GitHub. 73 00:04:26,840 --> 00:04:29,760 Y su público, cualquiera puede verlo. 74 00:04:29,760 --> 00:04:31,530 Entonces lo que vamos que hacer es que vamos 75 00:04:31,530 --> 00:04:37,810 para crear una versión privada local de ella en nuestras computadoras individuales. 76 00:04:37,810 --> 00:04:41,240 Y de hecho, usted puede tener muchos de los que todos 77 00:04:41,240 --> 00:04:45,770 apuntar al mismo repositorio público. 78 00:04:45,770 --> 00:04:49,230 >> Y de hecho, también es posible tener múltiples repositorios públicos 79 00:04:49,230 --> 00:04:51,480 que le guste, se obtiene alguna información de aquí 80 00:04:51,480 --> 00:04:52,300 y alguna información desde aquí. 81 00:04:52,300 --> 00:04:55,510 Pero eso es poco probable que sea relevante para sus proyectos finales o lo que sea. 82 00:04:55,510 --> 00:04:58,310 Así que no voy a ir en ese momento. 83 00:04:58,310 --> 00:05:02,700 Pero entonces, ¿cómo llegar de tener este repositorio público a distancia para realidad 84 00:05:02,700 --> 00:05:04,370 tener esa copia local? 85 00:05:04,370 --> 00:05:09,630 Utilice un comando llamado git clone, que literalmente sólo significa hacer una copia, 86 00:05:09,630 --> 00:05:11,660 como que suena. 87 00:05:11,660 --> 00:05:22,110 >> Y así, lo que vas a hacer es ir a la página repositorio en GitHub. 88 00:05:22,110 --> 00:05:24,740 Usted va a copiar el URL clon, clon SSH 89 00:05:24,740 --> 00:05:26,540 URL, porque nos establecimos claves SSH. 90 00:05:26,540 --> 00:05:32,740 Si no los tiene, puede hacer clic en cambio en HTTPS y puedes usar eso. 91 00:05:32,740 --> 00:05:39,040 Y luego aquí, en su espacio de trabajo directorio, nuevo clon de git, y luego 92 00:05:39,040 --> 00:05:41,160 pegar. 93 00:05:41,160 --> 00:05:45,980 Cuando se le pregunta si desea seguir haciéndolo, y decir que sí. 94 00:05:45,980 --> 00:05:49,280 >> Y ahora, si me ves, hay un directorio 95 00:05:49,280 --> 00:05:52,090 con el nombre del repositorio, cómo y por qué, para el seminario. 96 00:05:52,090 --> 00:05:55,050 97 00:05:55,050 --> 00:06:00,010 Y si enumeramos la archivos de aquí, se puede 98 00:06:00,010 --> 00:06:03,670 ver que son los mismos archivos que se enumeran en la página web. 99 00:06:03,670 --> 00:06:07,220 100 00:06:07,220 --> 00:06:11,287 Así que ahora usted tiene un local de copia del repositorio. 101 00:06:11,287 --> 00:06:13,370 Digamos que usted desea realmente hacer cambios en él. 102 00:06:13,370 --> 00:06:17,900 Todos los cambios en Git son stored-- como la unidad fundamental 103 00:06:17,900 --> 00:06:19,340 se llama un commit. 104 00:06:19,340 --> 00:06:23,980 Un cometer es sólo una parte de trabajo que usted ha puesto juntos, 105 00:06:23,980 --> 00:06:29,430 y tú has dicho GitHub, quiero salva esto como, estoy ahorrando mi trabajo, 106 00:06:29,430 --> 00:06:30,580 esencialmente. 107 00:06:30,580 --> 00:06:35,870 >> Y ha identificado por lo que es llamado un hash cometer, que 108 00:06:35,870 --> 00:06:37,250 es básicamente un identificador único. 109 00:06:37,250 --> 00:06:40,570 Pero la forma en que se genera es en realidad, GitHub 110 00:06:40,570 --> 00:06:44,800 tiene un formato parecido informar todos los cambios que 111 00:06:44,800 --> 00:06:49,680 en realidad fue al que comprometerse, y luego que hashes ese registro de los cambios. 112 00:06:49,680 --> 00:06:52,900 Así que el hash comprometerse realmente dice que lo que sucedió en esa confirmación, 113 00:06:52,900 --> 00:06:54,710 lo cambios realizados. 114 00:06:54,710 --> 00:07:01,660 >> Así que hacer un compromiso, vamos a ir aquí y si sólo 115 00:07:01,660 --> 00:07:07,750 abrir el archivo, nombres.txt, que se puede hacer desde la línea de comandos 116 00:07:07,750 --> 00:07:14,490 con opennames.txt, y que aparecerá aquí. 117 00:07:14,490 --> 00:07:15,860 A continuación, puede añadir su nombre. 118 00:07:15,860 --> 00:07:19,670 119 00:07:19,670 --> 00:07:20,800 Y a continuación, guárdelo. 120 00:07:20,800 --> 00:07:25,980 121 00:07:25,980 --> 00:07:41,720 Y ahora si escribe git status, se puede ver 122 00:07:41,720 --> 00:07:45,840 que se modificó el filenames.txt. 123 00:07:45,840 --> 00:07:48,130 Así GIT sabe que usted ha hecho un cambio. 124 00:07:48,130 --> 00:07:50,220 Nada ha sido comprometido todavía. 125 00:07:50,220 --> 00:07:54,936 >> Así que para decirle a Git, esta es una archivo que tiene cambios en ella 126 00:07:54,936 --> 00:07:57,310 que yo te quiero en realidad ahorrar, lo hace gitaddnames.txt. 127 00:07:57,310 --> 00:08:02,210 128 00:08:02,210 --> 00:08:06,420 Y ahora si lo haces git status, podrás ver que todavía no se ha comprometido. 129 00:08:06,420 --> 00:08:10,240 Pero ahora se sabe que se trata de una cambia que desea comprometerse. 130 00:08:10,240 --> 00:08:14,040 Básicamente lo que pasa es usted tiene su directorio de trabajo, 131 00:08:14,040 --> 00:08:18,480 y Git tiene un índice de lo que es pasó con el directorio de trabajo que 132 00:08:18,480 --> 00:08:19,980 está listo para ser comprometido. 133 00:08:19,980 --> 00:08:22,960 Y así, cuando se realizan cambios, que están en el directorio de trabajo. 134 00:08:22,960 --> 00:08:24,090 Están en su ordenador. 135 00:08:24,090 --> 00:08:26,630 Pero no han sido poner en ese índice todavía. 136 00:08:26,630 --> 00:08:31,016 >> Y así, cuando hacemos git add, se mueve las cosas desde el directorio de trabajo. 137 00:08:31,016 --> 00:08:32,890 Bueno, están todavía en el directorio de trabajo. 138 00:08:32,890 --> 00:08:36,080 Pero copias a todos los cambios en este índice. 139 00:08:36,080 --> 00:08:38,140 Y así entonces, cuando no git commit-- que 140 00:08:38,140 --> 00:08:42,320 es lo siguiente que estamos va a hacer-- en realidad 141 00:08:42,320 --> 00:08:46,740 los cometa y los pone en el historia permanente de su repositorio. 142 00:08:46,740 --> 00:08:52,725 Y cuando usted se compromete, siempre debe poner un mensaje de cometer informativo. 143 00:08:52,725 --> 00:09:01,060 144 00:09:01,060 --> 00:09:08,390 >> Así que ahora si lo hacemos git status, que dice que no hay nada para cometer, 145 00:09:08,390 --> 00:09:13,480 porque todos los cambios que se Hice ahora se han cometido. 146 00:09:13,480 --> 00:09:20,300 147 00:09:20,300 --> 00:09:26,235 Voy a tirar la accidental Los cambios que he hecho para eso. 148 00:09:26,235 --> 00:09:30,090 Así que ahora usted puede ver, vamos a decir que esencialmente sólo 149 00:09:30,090 --> 00:09:31,340 hizo cometer el púrpura, ¿verdad? 150 00:09:31,340 --> 00:09:34,010 Estamos añadiendo en Al final de esta historia 151 00:09:34,010 --> 00:09:38,690 que anteriormente cuando hice el archivo, nombres.txt, cuando por primera vez lo creé, 152 00:09:38,690 --> 00:09:40,310 tal vez esa fue la naranja commit. 153 00:09:40,310 --> 00:09:45,620 Y así entonces este cometen hachís debajo de la púrpura del diamante 154 00:09:45,620 --> 00:09:49,180 sería de alguna manera no, indicar: en el form-- legible por humanos 155 00:09:49,180 --> 00:09:51,760 pero indicaría alguna manera al funcionamiento interno de GitHub 156 00:09:51,760 --> 00:09:56,370 que hicimos esta específica cambiar a la nombres.txt archivo. 157 00:09:56,370 --> 00:10:02,631 >> Así que ahora usted tiene un cambio en su local, versión privada del repositorio. 158 00:10:02,631 --> 00:10:04,880 Ahora ves sale el error en ambos sentidos, y, obviamente, 159 00:10:04,880 --> 00:10:09,160 no sería muy útil si pudiéramos sólo alguna vez desea 160 00:10:09,160 --> 00:10:11,930 tomar los cambios que se estaban en el repositorio remoto, 161 00:10:11,930 --> 00:10:14,530 pero no teníamos forma de haciendo nuestros propios cambios. 162 00:10:14,530 --> 00:10:20,080 Por eso queremos impulsar nuestros cambios al repositorio remoto. 163 00:10:20,080 --> 00:10:22,495 Pero antes de empujar su cambios en el repositorio, 164 00:10:22,495 --> 00:10:25,550 siempre hay que tirar de para asegurarse de que no 165 00:10:25,550 --> 00:10:33,110 no han habido nuevos cambios en el tiempo desde que primero hizo ese cambio. 166 00:10:33,110 --> 00:10:38,790 >> Así que me voy a hacer un git pull, y dice que ya hasta la fecha, 167 00:10:38,790 --> 00:10:42,960 debido presumiblemente ninguno de ustedes empujado mientras yo estaba haciendo esto. 168 00:10:42,960 --> 00:10:48,320 Pero lo que ahora puedo hacer git push. 169 00:10:48,320 --> 00:10:55,870 Y ahora si me voy aquí, puedo ver que la más reciente cometerás 170 00:10:55,870 --> 00:10:56,880 es éste que hice. 171 00:10:56,880 --> 00:11:00,100 Ese cambio está ahora en el repositorio remoto. 172 00:11:00,100 --> 00:11:04,600 Así que cualquiera que tiene su ordenador fuera, adelante y añadir su nombre. 173 00:11:04,600 --> 00:11:10,960 Asegúrese de tirar antes de empujar, y luego empuje al repositorio remoto. 174 00:11:10,960 --> 00:11:12,660 >> Y así tenemos que ser capaces de ver. 175 00:11:12,660 --> 00:11:27,900 176 00:11:27,900 --> 00:11:32,009 Así que la razón de que siempre querer tirar antes de empujar 177 00:11:32,009 --> 00:11:34,300 es porque si tratas de empujar y no lo hace, y ya está 178 00:11:34,300 --> 00:11:41,910 faltan algunos cometen que está en el mando a distancia servidor, sólo va a darle un error. 179 00:11:41,910 --> 00:11:45,040 Pero si no le dan un error, sería sobrescribir 180 00:11:45,040 --> 00:11:47,580 lo que la persona anterior había empujado. 181 00:11:47,580 --> 00:11:50,840 Y usted no quiere perder su trabajo. 182 00:11:50,840 --> 00:11:51,840 Así que vamos a ver. 183 00:11:51,840 --> 00:11:56,460 184 00:11:56,460 --> 00:11:57,764 >> ¿Alguien ha conseguido este trabajo? 185 00:11:57,764 --> 00:11:58,680 AUDIENCIA: [inaudible]. 186 00:11:58,680 --> 00:12:02,539 187 00:12:02,539 --> 00:12:04,080 ANNA WHITNEY: ¿Qué sucede cuando usted-- 188 00:12:04,080 --> 00:12:05,006 AUDIENCIA: [inaudible]. 189 00:12:05,006 --> 00:12:09,680 190 00:12:09,680 --> 00:12:12,250 >> ANNA WHITNEY: Así que eres tiene problemas de tracción. 191 00:12:12,250 --> 00:12:14,952 Lo que se dice que el error cuando intenta tirar? 192 00:12:14,952 --> 00:12:16,365 >> AUDIENCIA: [inaudible]. 193 00:12:16,365 --> 00:12:18,240 ANNA WHITNEY: No ningún error cuando se tire. 194 00:12:18,240 --> 00:12:20,536 No dice nada cuando se tire? 195 00:12:20,536 --> 00:12:21,462 >> AUDIENCIA: [inaudible]. 196 00:12:21,462 --> 00:12:24,862 197 00:12:24,862 --> 00:12:25,570 ANNA WHITNEY: OK. 198 00:12:25,570 --> 00:12:28,737 Así que no sé mucho sobre su entorno específico 199 00:12:28,737 --> 00:12:29,820 que tienes ahí. 200 00:12:29,820 --> 00:12:32,589 201 00:12:32,589 --> 00:12:35,005 Pero ¿cuál es el error que se obtiene cuando tratas de empujar? 202 00:12:35,005 --> 00:12:38,130 >> AUDIENCIA: [inaudible]. 203 00:12:38,130 --> 00:12:39,580 >> ANNA WHITNEY: OK. 204 00:12:39,580 --> 00:12:42,650 Trate git principal origen de tracción. 205 00:12:42,650 --> 00:12:43,550 Así como este. 206 00:12:43,550 --> 00:12:49,764 207 00:12:49,764 --> 00:12:50,720 >> AUDIENCIA: [inaudible]. 208 00:12:50,720 --> 00:12:54,560 209 00:12:54,560 --> 00:12:58,250 >> ANNA WHITNEY: Una vez más, no sé muy mucho de su entorno de desarrollo 210 00:12:58,250 --> 00:12:59,270 específicamente. 211 00:12:59,270 --> 00:13:01,490 Pero cuando acabo de estado escribiendo git pull, eso es 212 00:13:01,490 --> 00:13:06,100 un poco de restar importancia a exactly-- que normalmente se dirá, 213 00:13:06,100 --> 00:13:11,680 o puede que no normalmente, pero puede Git decirle exactamente dónde tirar de. 214 00:13:11,680 --> 00:13:13,497 Entonces, ¿qué servidor remoto para tirar de. 215 00:13:13,497 --> 00:13:15,580 Porque, como he dicho, no podría ser más de uno, 216 00:13:15,580 --> 00:13:20,190 aunque no es por lo general en sólo una especie de toda la práctica del desarrollo día. 217 00:13:20,190 --> 00:13:24,029 >> Y hablaremos en un poco sobre las ramas. 218 00:13:24,029 --> 00:13:25,820 Eso es en realidad el siguiente lugar vamos. 219 00:13:25,820 --> 00:13:29,470 Y así master sería el nombre de la rama. 220 00:13:29,470 --> 00:13:30,310 ¿Eso ayuda? 221 00:13:30,310 --> 00:13:37,060 222 00:13:37,060 --> 00:13:37,560 ¿No? 223 00:13:37,560 --> 00:13:38,476 Todavía no estoy trabajando? 224 00:13:38,476 --> 00:13:41,140 ¿Alguien más tiene que trabajar? 225 00:13:41,140 --> 00:13:43,380 OKAY. 226 00:13:43,380 --> 00:13:46,750 Así que puedo fingir. 227 00:13:46,750 --> 00:13:51,492 Yo puedo pretender que soy un persona extra, pero estás 228 00:13:51,492 --> 00:13:53,700 va a tener que darme un segundo para conseguir que la puesta en marcha. 229 00:13:53,700 --> 00:14:16,180 230 00:14:16,180 --> 00:14:19,060 >> Así que lo que estoy haciendo es que estoy creating-- estoy clonando 231 00:14:19,060 --> 00:14:22,550 el repositorio en mi ordenador. 232 00:14:22,550 --> 00:14:33,350 Pero primero tengo que añadir otro conjunto de claves SSH para que yo pueda hacer eso. 233 00:14:33,350 --> 00:14:42,400 234 00:14:42,400 --> 00:14:43,580 OKAY. 235 00:14:43,580 --> 00:14:54,106 Así que ahora, ¿no? 236 00:14:54,106 --> 00:14:59,362 >> AUDIENCIA: Entonces, el punto verde junto a algunos de ellos, ¿qué significa eso? 237 00:14:59,362 --> 00:15:00,820 ANNA WHITNEY: Al lado de las claves SSH? 238 00:15:00,820 --> 00:15:03,350 Eso sólo significa que yo tengo usado esas claves SSH recientemente. 239 00:15:03,350 --> 00:15:14,770 240 00:15:14,770 --> 00:15:16,695 Así que vamos a hacer lo mismo. 241 00:15:16,695 --> 00:15:27,190 242 00:15:27,190 --> 00:15:27,980 ¿Ahora funciona? 243 00:15:27,980 --> 00:15:29,268 OKAY. 244 00:15:29,268 --> 00:15:30,226 >> AUDIENCIA: [inaudible]. 245 00:15:30,226 --> 00:15:38,369 246 00:15:38,369 --> 00:15:39,165 >> ANNA WHITNEY: OK. 247 00:15:39,165 --> 00:15:42,980 248 00:15:42,980 --> 00:15:52,080 Así que ahora si abro nombres.txt, Debería ser capaz de ver-- 249 00:15:52,080 --> 00:15:57,620 así que había que revisar un conflicto. 250 00:15:57,620 --> 00:15:58,120 Correcto. 251 00:15:58,120 --> 00:16:08,960 Así que vamos a deshacerse de estos. 252 00:16:08,960 --> 00:16:11,540 Hablaremos acerca de la combinación conflictos en sólo un segundo, 253 00:16:11,540 --> 00:16:15,280 pero esto es por eso que siempre quiere para asegurarse de que el tirón trabajó 254 00:16:15,280 --> 00:16:17,290 antes de tratar de empujar. 255 00:16:17,290 --> 00:16:25,080 Y fijar cualquier conflicto antes de empujar. 256 00:16:25,080 --> 00:16:27,030 OKAY. 257 00:16:27,030 --> 00:16:29,870 >> Pero así que aquí está un ejemplo de lo que se realice. 258 00:16:29,870 --> 00:16:32,690 259 00:16:32,690 --> 00:16:40,270 Si entro aquí, asegúrese de que Tengo la mayoría hasta la fecha cambia, 260 00:16:40,270 --> 00:16:47,130 Bien, ahora sólo voy a usar esto. 261 00:16:47,130 --> 00:16:47,660 Derecha OK. 262 00:16:47,660 --> 00:16:49,462 Así que hice un cambio aquí. 263 00:16:49,462 --> 00:16:50,420 Tengo que tener cuidado. 264 00:16:50,420 --> 00:16:53,380 Tengo que salvar a este hecho. 265 00:16:53,380 --> 00:17:26,951 Ahora ok. 266 00:17:26,951 --> 00:17:28,700 Así que hay un poco raro cosas que hacer aquí, 267 00:17:28,700 --> 00:17:30,895 pero no te preocupes demasiado por eso. 268 00:17:30,895 --> 00:17:35,790 269 00:17:35,790 --> 00:17:36,890 >> OKAY. 270 00:17:36,890 --> 00:17:52,810 Así que ahora si abro nombres.txt y añado mi nombre otra vez, 271 00:17:52,810 --> 00:17:54,470 Ahora puedo hacer lo mismo aquí. 272 00:17:54,470 --> 00:17:58,210 273 00:17:58,210 --> 00:18:01,520 Y te darás cuenta de que en lugar de hacer añadir y luego cometer, 274 00:18:01,520 --> 00:18:06,160 He estado haciendo en el acceso directo de sólo hacer git commit-a y entonces m. 275 00:18:06,160 --> 00:18:08,950 Lo cual, si tiene un archivo que ya existed-- en otras palabras, 276 00:18:08,950 --> 00:18:12,610 que no crea un nuevo file-- no lo hace En realidad hay que añadir por separado la misma. 277 00:18:12,610 --> 00:18:17,070 Se podía decir Git, cuando comprometo, quiero simplemente añada directamente. 278 00:18:17,070 --> 00:18:19,710 Pero si ha creado un nuevo archivo, hay que añadir específicamente, 279 00:18:19,710 --> 00:18:22,668 porque de lo contrario Git no seguirlo hasta que específicamente diga que lo haga. 280 00:18:22,668 --> 00:18:36,280 281 00:18:36,280 --> 00:18:36,840 ¿Lo lamento? 282 00:18:36,840 --> 00:18:39,790 >> AUDIENCIA: [inaudible]. 283 00:18:39,790 --> 00:18:42,500 >> ANNA WHITNEY: Así que la cosa sobre Git es que para 284 00:18:42,500 --> 00:18:48,360 para darle tanto control sobre exactamente los cambios que está utilizando 285 00:18:48,360 --> 00:18:56,150 y cuáles no lo eres, a veces es un poco 286 00:18:56,150 --> 00:18:58,510 no fácil de usar, que es por eso que estoy aquí. 287 00:18:58,510 --> 00:19:02,285 Porque nadie tiene que dar una presentación sobre cómo utilizar Google Docs. 288 00:19:02,285 --> 00:19:05,320 289 00:19:05,320 --> 00:19:07,120 >> AUDIENCIA: Depende de la audiencia. 290 00:19:07,120 --> 00:19:07,880 >> ANNA WHITNEY: OK. 291 00:19:07,880 --> 00:19:09,630 Nadie tiene que dar una presentación sobre cómo 292 00:19:09,630 --> 00:19:14,370 utilizar Google Docs para un grupo de estudiantes CS50. 293 00:19:14,370 --> 00:19:17,245 Así que he mencionado brevemente que hay ramas. 294 00:19:17,245 --> 00:19:19,370 Y desde el principio, ese cómic que yo mostré 295 00:19:19,370 --> 00:19:21,650 hablado de Git que tiene un modelo de árbol. 296 00:19:21,650 --> 00:19:29,140 Así que lo que eso significa es, digamos que los repositorios, como la forma en que 297 00:19:29,140 --> 00:19:31,230 lo tiene en este momento, es la línea roja. 298 00:19:31,230 --> 00:19:34,090 Y usted sabe, está hecho de un montón de confirmaciones. 299 00:19:34,090 --> 00:19:37,830 Imagínese como una longitud a lo largo de que línea equivale a recibir una confirmación. 300 00:19:37,830 --> 00:19:41,340 >> O algo así, hay un montón de diferentes commit en ese país. 301 00:19:41,340 --> 00:19:44,710 No importa realmente cuántos. 302 00:19:44,710 --> 00:19:49,101 Pero así que vamos a decir que ahora tengo una pieza de trabajo de software que es 303 00:19:49,101 --> 00:19:49,850 pasando ahí. 304 00:19:49,850 --> 00:19:53,490 En lugar de representar a nuestro pequeño repositorio que es sólo para la prueba, 305 00:19:53,490 --> 00:19:56,020 tal vez es un proyecto real. 306 00:19:56,020 --> 00:19:57,270 Tal vez sea su proyecto final. 307 00:19:57,270 --> 00:20:01,600 Tal vez es una pieza de software que es como ser efectivamente utilizada comercialmente. 308 00:20:01,600 --> 00:20:05,560 Cuando usted quiere agregar una nueva función, no quieren romper su código existente. 309 00:20:05,560 --> 00:20:08,670 >> Así que en lugar de hacer esos cambios derecha 310 00:20:08,670 --> 00:20:14,030 en medio de su código de trabajo, puede crear lo que se llama una rama. 311 00:20:14,030 --> 00:20:18,620 ¿Y dónde comienza la rama, todo lo que es idéntica a 312 00:20:18,620 --> 00:20:22,730 en su rama regional, que se llama maestro, de forma predeterminada. 313 00:20:22,730 --> 00:20:27,700 Y luego a medida que agrega más comete, divergen. 314 00:20:27,700 --> 00:20:30,610 Y usted puede llegar a tener más se compromete en una rama que otro. 315 00:20:30,610 --> 00:20:35,220 Usted puede incluso tener ramas sub fuera de otras ramas. 316 00:20:35,220 --> 00:20:42,100 >> Y por lo que si desea crear una rama, y ​​las ramas 317 00:20:42,100 --> 00:20:45,220 se puede local-- lo que significa que son sólo en su máquina, 318 00:20:45,220 --> 00:20:47,900 son sólo para usted personalmente trabajando en eso feature-- 319 00:20:47,900 --> 00:20:50,520 o si se puede empujar a el repositorio remoto y 320 00:20:50,520 --> 00:20:52,550 y alguien más puede colaborar en esa rama, 321 00:20:52,550 --> 00:20:57,190 colaborar en esa característica la forma en que lo haría en maestro. 322 00:20:57,190 --> 00:20:59,240 Así que ahora estoy actualmente en la rama principal. 323 00:20:59,240 --> 00:21:03,390 El IDE es lo suficientemente inteligente como para decir yo no sólo lo que el directorio en que estoy, 324 00:21:03,390 --> 00:21:05,430 sino específicamente qué rama que estoy. 325 00:21:05,430 --> 00:21:10,430 >> Así que ahora si quiero crear una nueva rama, el comando 326 00:21:10,430 --> 00:21:16,190 es un poco unintuitively git checkout -b, por rama. 327 00:21:16,190 --> 00:21:18,330 Y a continuación, el nombre que me quiere dar la rama. 328 00:21:18,330 --> 00:21:20,780 Así que me voy a hacer una rama llamada rama anna. 329 00:21:20,780 --> 00:21:22,820 Y ahora dice que estoy en la rama de anna. 330 00:21:22,820 --> 00:21:31,100 Y si miro en estos archivos, entonces usted 331 00:21:31,100 --> 00:21:33,680 ver que ellos son exactamente los mismos que eran. 332 00:21:33,680 --> 00:21:37,340 No he cambiado nada por ir a una sucursal. 333 00:21:37,340 --> 00:21:42,430 >> Pero ahora déjenme decirles que quiero hacer algunos cambios en esta rama. 334 00:21:42,430 --> 00:21:46,147 Así que tengo esta otra archivo, loremipsum.txt, 335 00:21:46,147 --> 00:21:48,105 se acaba de recibir un montón de palabras incomprensibles en ella. 336 00:21:48,105 --> 00:21:52,080 337 00:21:52,080 --> 00:21:59,810 Así que si abro esto, digamos que quiero para cambiar la primera palabra a mi nombre. 338 00:21:59,810 --> 00:22:01,980 Usted puede hacer esto por su cuenta. 339 00:22:01,980 --> 00:22:04,220 Y luego lo guardo. 340 00:22:04,220 --> 00:22:06,470 Ahora voy a cerrarla así que no me quedo accidentalmente 341 00:22:06,470 --> 00:22:09,470 la edición de los archivos cuando no me refiero a. 342 00:22:09,470 --> 00:22:14,165 Así que ahora puedo cometer este. 343 00:22:14,165 --> 00:22:30,240 344 00:22:30,240 --> 00:22:31,830 >> Y yo no voy a empujar este cometido. 345 00:22:31,830 --> 00:22:34,430 Esta es sólo va a ser local por ahora. 346 00:22:34,430 --> 00:22:40,620 Debido a que en la actualidad, no hay una rama de aquí se llama rama anna. 347 00:22:40,620 --> 00:22:41,520 Yo podría crear uno. 348 00:22:41,520 --> 00:22:44,650 Si yo quería compartir mi trabajo en rama anna con todos ustedes, 349 00:22:44,650 --> 00:22:51,120 Que podría crear, podría empujar y Git que decirme cómo crear una rama 350 00:22:51,120 --> 00:22:55,730 llamada rama anna en el repositorio remoto. 351 00:22:55,730 --> 00:22:59,130 >> Pero si usted está trabajando en una característica Y tú eres el único que trabaja en él, 352 00:22:59,130 --> 00:23:02,470 es su función, a continuación, no hay ninguna razón en particular 353 00:23:02,470 --> 00:23:07,500 para empujarlo al repositorio remoto. 354 00:23:07,500 --> 00:23:09,290 Puede actuar como una copia de seguridad. 355 00:23:09,290 --> 00:23:14,640 Pero si usted es bastante seguro que el equipo no se va a morir, 356 00:23:14,640 --> 00:23:17,920 entonces hay algunas ventajas a sólo mantener en su ordenador. 357 00:23:17,920 --> 00:23:21,110 Aunque yo no voy a entrar en los a menos que tengamos un poco de tiempo al final. 358 00:23:21,110 --> 00:23:23,620 359 00:23:23,620 --> 00:23:27,480 Así que ahora tengo una rama llamada rama anna. 360 00:23:27,480 --> 00:23:29,015 >> Y permítanme crear un archivo. 361 00:23:29,015 --> 00:23:32,690 362 00:23:32,690 --> 00:23:36,549 Esta es una manera de crear un vacío presentar con un nombre dado en Unix 363 00:23:36,549 --> 00:23:37,715 con sólo el comando touch. 364 00:23:37,715 --> 00:23:41,290 Así que sólo voy a toque un archivo llamado anna. 365 00:23:41,290 --> 00:23:48,820 Ahora bien, si yo-- y se puede ver que el archivo es allí-- 366 00:23:48,820 --> 00:23:52,090 que dice que hay un archivo sin seguimiento. 367 00:23:52,090 --> 00:23:54,530 Así que ahora tengo que hacer lo que tienes que hacer git add. 368 00:23:54,530 --> 00:23:58,170 369 00:23:58,170 --> 00:24:01,270 Y ahora se sabe que existe este nuevo archivo. 370 00:24:01,270 --> 00:24:02,190 >> AUDIENCIA: [inaudible]. 371 00:24:02,190 --> 00:24:05,102 372 00:24:05,102 --> 00:24:06,310 ANNA WHITNEY: En la rama anna. 373 00:24:06,310 --> 00:24:06,809 Sí. 374 00:24:06,809 --> 00:24:10,220 En sólo un segundo, veremos que cuando Vuelvo al maestro, no está ahí. 375 00:24:10,220 --> 00:24:16,110 376 00:24:16,110 --> 00:24:20,800 El comando para ver el vigente ramas es git branch, 377 00:24:20,800 --> 00:24:22,900 y te muestra cuál estás. 378 00:24:22,900 --> 00:24:25,260 Hay una variedad de otros comandos asociados 379 00:24:25,260 --> 00:24:27,660 con eso que le permiten hacer diferentes cosas para sucursales, 380 00:24:27,660 --> 00:24:31,540 pero la rama justo git en su propia voluntad mostrar lo que la rama que te encuentres, 381 00:24:31,540 --> 00:24:36,810 y lo que las otras ramas que están en el equipo local. 382 00:24:36,810 --> 00:24:45,470 >> Así que ahora que volver al maestro, lo hago git checkout master, sin -b. 383 00:24:45,470 --> 00:24:47,650 Se utiliza el -b si estás la creación de una rama. 384 00:24:47,650 --> 00:24:50,691 Y si usted no está creando una rama, entonces el nombre del comando 385 00:24:50,691 --> 00:24:53,440 hace un poco más de sentido, porque como me dejes ir echa un vistazo a maestro 386 00:24:53,440 --> 00:24:56,030 y ver lo que está pasando allí. 387 00:24:56,030 --> 00:24:58,610 Así que ahora si hago esto, no hay ningún archivo de anna. 388 00:24:58,610 --> 00:25:01,240 389 00:25:01,240 --> 00:25:05,450 Si abro este archivo, se puede ver que no hay ningún cambio en él. 390 00:25:05,450 --> 00:25:08,990 391 00:25:08,990 --> 00:25:13,100 Y por eso, ahora PUEDO algunos cambios por aquí. 392 00:25:13,100 --> 00:25:21,555 Así que puedo sacar provecho de esto, por ejemplo. 393 00:25:21,555 --> 00:25:27,170 394 00:25:27,170 --> 00:25:34,490 >> Y puedo tocar a otro archivo llamado maestro. 395 00:25:34,490 --> 00:25:37,840 Y por lo que ahora se puede ver que tengo algunos cambios que no han llevado a cabo 396 00:25:37,840 --> 00:25:41,849 que están en Loremipsum, y yo tengo este nuevo archivo. 397 00:25:41,849 --> 00:25:43,390 Así que ahora voy a agregar el nuevo archivo. 398 00:25:43,390 --> 00:25:48,590 399 00:25:48,590 --> 00:25:53,580 Y voy a cometer. 400 00:25:53,580 --> 00:25:56,930 Y de nuevo, a pesar de que añadió un archivo en concreto y no 401 00:25:56,930 --> 00:26:00,090 añadir el archivo que ya existido, porque estoy utilizando el -a, 402 00:26:00,090 --> 00:26:03,990 todos los archivos que ya existido logrará cuidado. 403 00:26:03,990 --> 00:26:12,860 404 00:26:12,860 --> 00:26:13,360 OKAY. 405 00:26:13,360 --> 00:26:17,430 406 00:26:17,430 --> 00:26:21,784 >> Así que ahora las ramas todavía están allí. 407 00:26:21,784 --> 00:26:22,950 Y una rama aún está allí. 408 00:26:22,950 --> 00:26:26,210 Pudiera volver atrás en rama anna y mostrar que mis cambios aquí en master 409 00:26:26,210 --> 00:26:30,240 no han afectado a eso, pero me imagino que tuvo la idea de cuando fui a dominar 410 00:26:30,240 --> 00:26:32,810 y funcionó de esa manera. 411 00:26:32,810 --> 00:26:40,480 Ahora digamos que quiero en realidad incorporar esos cambios al maestro. 412 00:26:40,480 --> 00:26:42,280 Terminé mi función. 413 00:26:42,280 --> 00:26:42,900 Esta funcionando. 414 00:26:42,900 --> 00:26:44,570 Lo he probado, funciona. 415 00:26:44,570 --> 00:26:46,490 Y ahora quiero incorporar esa característica 416 00:26:46,490 --> 00:26:48,460 en la pieza principal del software. 417 00:26:48,460 --> 00:26:52,095 Terminaste el más simple versión de su proyecto final, 418 00:26:52,095 --> 00:26:53,970 pero que en realidad tenía un poco de tiempo extra 419 00:26:53,970 --> 00:26:56,140 así que volvimos y creado esta nueva característica, 420 00:26:56,140 --> 00:27:01,870 y ahora desea combinar en forma que en realidad se puede mostrar a su TF. 421 00:27:01,870 --> 00:27:05,480 >> No en vano, esta se llama un git merge. 422 00:27:05,480 --> 00:27:10,810 Y que vimos antes cómo puede tener conflictos de combinación, 423 00:27:10,810 --> 00:27:12,850 y usted va a tienen que resolverlos. 424 00:27:12,850 --> 00:27:21,490 Así que si me voy de aquí y de master-- ahora estoy en master 425 00:27:21,490 --> 00:27:24,730 y quiero fusionar en el cambios de branch-- anna 426 00:27:24,730 --> 00:27:28,630 así que voy a hacer git rama anna combinación. 427 00:27:28,630 --> 00:27:31,190 Y primero intenta AutoMerge. 428 00:27:31,190 --> 00:27:33,950 Y si no hubiera cambios conflictivos, 429 00:27:33,950 --> 00:27:40,330 si yo había creado el presentar anna anna en la rama, 430 00:27:40,330 --> 00:27:44,710 y acaba de crear el archivo dominar en la rama principal, 431 00:27:44,710 --> 00:27:46,460 entonces sería simplemente hacer una combinación de auto y 432 00:27:46,460 --> 00:27:49,680 comprometería el resultado automáticamente. 433 00:27:49,680 --> 00:27:53,210 >> Pero si usted tiene fusionar conflictos, entonces usted 434 00:27:53,210 --> 00:27:56,900 que arreglar los conflictos antes de la fusión puede seguir adelante. 435 00:27:56,900 --> 00:28:05,750 Así que ahora, si entro en Loremipsum, vemos la misma cosa 436 00:28:05,750 --> 00:28:11,660 que vimos antes, donde hay los dos cambios diferentes. 437 00:28:11,660 --> 00:28:13,340 Y puedo aceptar, ya sea uno de ellos. 438 00:28:13,340 --> 00:28:15,950 Incluso puedo tenerlos ser uno encima del otro, 439 00:28:15,950 --> 00:28:18,117 si eso tiene sentido para lo que estoy haciendo. 440 00:28:18,117 --> 00:28:20,700 En el código, por lo general vas a querer una versión o la otra 441 00:28:20,700 --> 00:28:24,480 si ambos hicieron cambios a eso. 442 00:28:24,480 --> 00:28:29,680 >> Parece que hay probablemente, en esta interfaz, una cierta manera de fantasía para mí 443 00:28:29,680 --> 00:28:39,770 a aceptar un conjunto de cambios o la otra. 444 00:28:39,770 --> 00:28:44,280 Pero ya no lo hago realidad saber cómo funciona, 445 00:28:44,280 --> 00:28:50,720 Yo sólo voy a tratar de hacer esto mano, lo que no está funcionando tan bien. 446 00:28:50,720 --> 00:28:57,100 447 00:28:57,100 --> 00:29:05,240 Así que déjame hacer esto como yo saber cómo, que es [inaudible]. 448 00:29:05,240 --> 00:29:08,010 Y vamos a tomar el de maestro, porque mi nombre de verdad 449 00:29:08,010 --> 00:29:11,000 no es tan importante que tiene que ir en todo. 450 00:29:11,000 --> 00:29:14,480 451 00:29:14,480 --> 00:29:20,620 >> Ahora sólo para mostrar que esa realidad Hice lo que dijo que haría, ahí está. 452 00:29:20,620 --> 00:29:23,340 453 00:29:23,340 --> 00:29:29,330 Así que ahora, si lo hago status-- git y puedes ver que sabe que está en el merge-- 454 00:29:29,330 --> 00:29:33,522 porque he cambiado este archivo que tenían los conflictos de combinación en el mismo, 455 00:29:33,522 --> 00:29:36,790 Tengo que añadir que de nuevo para que se sabe que es seguro para cometer. 456 00:29:36,790 --> 00:29:39,380 457 00:29:39,380 --> 00:29:41,670 Así que voy a añadirlo. 458 00:29:41,670 --> 00:29:53,370 Y entonces yo sólo voy a no comprometerse en lugar de poner en un mensaje, 459 00:29:53,370 --> 00:29:57,940 porque va a generar automáticamente una confirmación de mensaje que dice algo 460 00:29:57,940 --> 00:30:00,320 acerca de lo que los conflictos eran. 461 00:30:00,320 --> 00:30:03,660 >> Ahora fusionar los mensajes de confirmación no son siempre muy útil, 462 00:30:03,660 --> 00:30:06,910 pero si no había conflictos, que acaba de auto generar ese mensaje 463 00:30:06,910 --> 00:30:10,240 y no necesariamente tener la oportunidad de editarlo. 464 00:30:10,240 --> 00:30:14,425 Simplemente iría automáticamente en su historia se comprometen con este mensaje. 465 00:30:14,425 --> 00:30:17,610 466 00:30:17,610 --> 00:30:20,750 Yo en realidad no sé cómo, ah sí. 467 00:30:20,750 --> 00:30:35,150 468 00:30:35,150 --> 00:30:35,650 Allá vamos. 469 00:30:35,650 --> 00:30:39,340 470 00:30:39,340 --> 00:30:46,500 Eso es justo, lo abre automáticamente en un editor de texto que 471 00:30:46,500 --> 00:30:51,150 pasa a ser establecido como el defecto. Que podría tener lugar 472 00:30:51,150 --> 00:30:56,130 git commit -m hecho y después sólo una cadena de cotización vacía. 473 00:30:56,130 --> 00:30:59,520 Y lo haría de forma automática hacer el mensaje de combinación 474 00:30:59,520 --> 00:31:01,570 sin tener que frente a cualquier editor 475 00:31:01,570 --> 00:31:05,700 que piensa que debe utilizar para el mensaje de confirmación. 476 00:31:05,700 --> 00:31:06,260 >> Correcto. 477 00:31:06,260 --> 00:31:12,930 Así que fue una gran cantidad de comandos y una gran cantidad de bits de información sólo 478 00:31:12,930 --> 00:31:14,110 muy rápidamente. 479 00:31:14,110 --> 00:31:17,390 ¿Alguien tiene alguna pregunta? 480 00:31:17,390 --> 00:31:20,360 Sé que la mayoría de ustedes no lo hacen en realidad tienen en marcha y funcionando. 481 00:31:20,360 --> 00:31:23,988 >> AUDIENCIA: Entonces, ¿la rama anna todavía existen en este momento [inaudible]? 482 00:31:23,988 --> 00:31:27,860 483 00:31:27,860 --> 00:31:31,360 >> ANNA WHITNEY: Así que si lo hago git branch-- así que la pregunta era, 484 00:31:31,360 --> 00:31:35,150 hace la rama anna aún existen ahora que he fusionado en maestro. 485 00:31:35,150 --> 00:31:39,850 Sí lo hace, pero puedo borrarlo. 486 00:31:39,850 --> 00:31:42,910 Así lo típico es, sí, si ha creado 487 00:31:42,910 --> 00:31:47,170 una rama de la característica y la característica tiene sido completamente fusionado en maestro, 488 00:31:47,170 --> 00:31:50,270 y usted no está planeando hacer trabajar más en esa función, 489 00:31:50,270 --> 00:31:53,740 si ha creado una nueva función o si quería empezar a crear una nueva característica, 490 00:31:53,740 --> 00:31:58,890 debe crear una nueva rama sólo para en aras de la limpieza y la organización. 491 00:31:58,890 --> 00:32:06,490 >> Así que ahora lo que puedo hacer para eliminar esa rama es rama anna git rama -d. 492 00:32:06,490 --> 00:32:11,660 Y si no hubiera fusionado en anna rama antes de que yo traté de hacer eso, 493 00:32:11,660 --> 00:32:15,870 me daría un error que dice que rama anna no está completamente fusionado. 494 00:32:15,870 --> 00:32:19,840 En otras palabras, los cambios que se en la rama anna no son en ningún otro lugar. 495 00:32:19,840 --> 00:32:24,070 Así que si elimina la rama, si no se pierden esos cambios. 496 00:32:24,070 --> 00:32:26,770 Pero debido a que acababa de fusionó, Git es lo suficientemente inteligente 497 00:32:26,770 --> 00:32:31,035 saber que la rama anna es totalmente incorporado en maestro. 498 00:32:31,035 --> 00:32:33,550 499 00:32:33,550 --> 00:32:36,820 >> Y es realmente posible Eliminar una rama si realmente 500 00:32:36,820 --> 00:32:38,860 no quieren deshacerse de sus cambios. 501 00:32:38,860 --> 00:32:41,910 Es posible borrar una rama que no se fusionaron. 502 00:32:41,910 --> 00:32:45,210 Todo lo que usted realmente tiene que hacer es cambiar la d minúscula existe 503 00:32:45,210 --> 00:32:48,540 a una mayúscula D. Pero es en general, no es una buena idea, 504 00:32:48,540 --> 00:32:53,470 por lo que se obtiene una error si intenta hacer eso. 505 00:32:53,470 --> 00:32:55,138 ¿Otra pregunta? 506 00:32:55,138 --> 00:32:56,086 >> AUDIENCIA: [inaudible]. 507 00:32:56,086 --> 00:32:59,759 508 00:32:59,759 --> 00:33:02,300 ANNA WHITNEY: Así que si usted tenía la prueba y entornos de producción, 509 00:33:02,300 --> 00:33:05,270 ¿cómo podría relacionarse a las ramas? 510 00:33:05,270 --> 00:33:08,767 Así que esto era sólo un ejemplo de una rama que es para una característica 511 00:33:08,767 --> 00:33:10,600 y luego te deshaces de la misma una vez que se fusionó. 512 00:33:10,600 --> 00:33:13,400 También es posible tienen sucursales larga corriendo 513 00:33:13,400 --> 00:33:17,380 que se utiliza para una parte de su proceso de desarrollo. 514 00:33:17,380 --> 00:33:20,140 Así que bien podría tener un banco de pruebas. 515 00:33:20,140 --> 00:33:23,750 Y hay todo tipo de maneras para integrar otros servicios 516 00:33:23,750 --> 00:33:25,890 para conectar e interactuar con Git. 517 00:33:25,890 --> 00:33:30,310 Así que usted podría tener su rama de pruebas ejecutará automáticamente pruebas en ese código. 518 00:33:30,310 --> 00:33:33,982 >> Así como usted tiene su rama de desarrollo, 519 00:33:33,982 --> 00:33:36,940 y luego usted tiene su producción rama, y ​​que tenga su banco de pruebas. 520 00:33:36,940 --> 00:33:40,310 Y usted tomaría sus cambios de la rama de desarrollo, 521 00:33:40,310 --> 00:33:43,770 de alguna manera incorporarlos a la banco de pruebas utilizando algún flujo de trabajo, que 522 00:33:43,770 --> 00:33:46,790 podría ser una fusión, como si acabara mostré. 523 00:33:46,790 --> 00:33:51,681 Y entonces lo haría, desde allí, sería ejecutar las pruebas. 524 00:33:51,681 --> 00:33:53,930 Usted podría tener que configurar para hacerlo de forma automática, incluso. 525 00:33:53,930 --> 00:33:56,580 Y entonces usted podría incorporar que en su rama de producción. 526 00:33:56,580 --> 00:33:59,720 Eso responde tu pregunta? 527 00:33:59,720 --> 00:34:02,760 ¿Alguna otra pregunta? 528 00:34:02,760 --> 00:34:08,199 >> Porque de aquí, vamos desde los comandos git estándar 529 00:34:08,199 --> 00:34:11,820 que sin duda utilizar cualquiera vez que están tratando de hacer un proyecto 530 00:34:11,820 --> 00:34:15,389 y llegar a algo que es un poco más esotérico 531 00:34:15,389 --> 00:34:18,380 y más como otra forma de hacer algunas de las mismas cosas 532 00:34:18,380 --> 00:34:21,192 que ya hemos hablado. 533 00:34:21,192 --> 00:34:23,010 >> AUDIENCIA: [inaudible]. 534 00:34:23,010 --> 00:34:24,789 >> ANNA WHITNEY: No, como más inusual. 535 00:34:24,789 --> 00:34:27,440 536 00:34:27,440 --> 00:34:28,330 OKAY. 537 00:34:28,330 --> 00:34:31,450 Así es todo bastante claro al respecto? 538 00:34:31,450 --> 00:34:36,995 En lo que ha sucedido hasta el momento y por qué esta es la forma en que íbamos a hacer las cosas? 539 00:34:36,995 --> 00:34:37,870 Tiene sentido? 540 00:34:37,870 --> 00:34:39,590 Excelente. 541 00:34:39,590 --> 00:34:46,219 Así que en lugar de la fusión, o a veces, además de la fusión, 542 00:34:46,219 --> 00:34:50,362 hay otra manera de incorporar cambios de una rama en otra, 543 00:34:50,362 --> 00:34:51,570 y eso se llama un cambio de base. 544 00:34:51,570 --> 00:34:54,139 545 00:34:54,139 --> 00:34:59,140 Y es casi como lo contrario de una fusión. 546 00:34:59,140 --> 00:35:04,480 >> Así cambio de base es diferente de todo lo que hemos hablado hasta ahora 547 00:35:04,480 --> 00:35:07,790 ya que en realidad vuelve a escribir su historia. 548 00:35:07,790 --> 00:35:09,780 Y algunas personas piensan que esto es algo 549 00:35:09,780 --> 00:35:11,710 nunca se debe hacer nunca en Git. 550 00:35:11,710 --> 00:35:14,880 Pero esta es una característica que Git ofertas, así que estoy de la opinión 551 00:35:14,880 --> 00:35:19,700 que es perfectamente bien, siempre como ustedes saben cómo hacerlo correctamente. 552 00:35:19,700 --> 00:35:23,711 En definitiva, es el caso que nunca debe reescribir la historia pública. 553 00:35:23,711 --> 00:35:25,710 Así que esto es lo que era hablando de antes, cuando 554 00:35:25,710 --> 00:35:28,270 Dije que hay algunas ventajas a tener una rama que es 555 00:35:28,270 --> 00:35:29,856 sólo locales en su máquina. 556 00:35:29,856 --> 00:35:32,980 Eso significa que usted puede usar trucos como esto, y voy a ir a un poco más 557 00:35:32,980 --> 00:35:36,330 por qué es posible que desee hacer esto en un segundo. 558 00:35:36,330 --> 00:35:41,220 Pero justo renuncia masiva para iniciar con, no reescribir la historia pública. 559 00:35:41,220 --> 00:35:47,660 Debido a que usted vio antes lo que ocurre si usted no hace la combinación correcta, 560 00:35:47,660 --> 00:35:49,300 cuando se tire. 561 00:35:49,300 --> 00:35:52,084 >> Si reescribiste, si tuviera reescrito la historia 562 00:35:52,084 --> 00:35:55,250 y luego que estaba tratando de tirar, Git estaría volviendo loco con 1.000 errores 563 00:35:55,250 --> 00:35:59,260 diciendo que hay nebulización commits aquí que les gusta, que tiene. 564 00:35:59,260 --> 00:36:03,110 Pero luego hay otras confirmaciones usted no tiene que están aquí. 565 00:36:03,110 --> 00:36:06,650 Por lo tanto, podría pensar que todo estaba supone que ya han sucedido. 566 00:36:06,650 --> 00:36:08,620 No sería coincidir con lo fue en su máquina. 567 00:36:08,620 --> 00:36:10,710 No vuelvas a hacer eso a sus colaboradores. 568 00:36:10,710 --> 00:36:12,210 Nunca reescribir la historia pública. 569 00:36:12,210 --> 00:36:14,800 570 00:36:14,800 --> 00:36:20,230 >> Pero se puede reescribir la historia local, y hay algunas buenas razones para hacerlo. 571 00:36:20,230 --> 00:36:23,280 Así que primero, lo que sucede cuando usted rebase? 572 00:36:23,280 --> 00:36:25,700 Digamos que tengo la rama principal en rojo, 573 00:36:25,700 --> 00:36:29,020 y luego la rama azul en azul. 574 00:36:29,020 --> 00:36:36,490 Mientras estoy en la rama azul Yo podría escribir master git rebase, 575 00:36:36,490 --> 00:36:39,880 por lo que es una especie de lo contrario dirección desde la fusión. 576 00:36:39,880 --> 00:36:42,230 Estoy rebase el de dominar. 577 00:36:42,230 --> 00:36:45,040 Y significa, literalmente, que estoy tomando los commits 578 00:36:45,040 --> 00:36:49,420 que hice en la rama azul y poner al final de master 579 00:36:49,420 --> 00:36:51,710 como su base. 580 00:36:51,710 --> 00:36:54,410 >> Así que, esencialmente lo que hace es que incorpora 581 00:36:54,410 --> 00:36:58,930 todas las confirmaciones que han sucedido el maestro desde el punto de ramificación 582 00:36:58,930 --> 00:37:05,000 como si hubieran sucedido antes de que todo el commit que están en la rama azul. 583 00:37:05,000 --> 00:37:08,450 ¿Eso conceptualmente tiene sentido? 584 00:37:08,450 --> 00:37:13,970 Así que la razón principal para hacerlo es que permite que tus commits realidad 585 00:37:13,970 --> 00:37:17,700 especie de-- un individuo comprometerse puede ser una unidad de trabajo 586 00:37:17,700 --> 00:37:19,850 y que puede ser clara en la historia. 587 00:37:19,850 --> 00:37:22,420 Y usted no tiene estos se fusionan comete donde no es obvio 588 00:37:22,420 --> 00:37:26,920 qué características nos están fusionamos o qué cambios se hicieron realidad, 589 00:37:26,920 --> 00:37:33,420 porque usted no tiene acceso a las commit reales que 590 00:37:33,420 --> 00:37:35,420 se hicieron antes de la fusión, ¿verdad? 591 00:37:35,420 --> 00:37:39,220 >> No es que no siempre es obvia desde el registro, que en realidad, eso es 592 00:37:39,220 --> 00:37:41,990 algo que mirar. 593 00:37:41,990 --> 00:37:47,120 Si hago esto, se puede ver el registro. 594 00:37:47,120 --> 00:37:53,290 El comando se acaba de obtener registro, y puedes mirar a través de todas las confirmaciones sobre las previas. 595 00:37:53,290 --> 00:37:57,330 596 00:37:57,330 --> 00:37:59,330 Así que ya ves que hay otra fusionar cometer aquí. 597 00:37:59,330 --> 00:38:02,660 Esto es lo que sucedió cuando usted está teniendo problemas para tirar y empujar anterior. 598 00:38:02,660 --> 00:38:06,630 599 00:38:06,630 --> 00:38:13,830 Así que algunos de ellos son bastante claras, éstas mensajes que gusta, he añadido un archivo, 600 00:38:13,830 --> 00:38:16,202 De Scott puso su nombre en el archivo. 601 00:38:16,202 --> 00:38:16,910 Cosas así. 602 00:38:16,910 --> 00:38:20,010 >> Pero entonces tenemos estos fusión comete y no es muy obvio 603 00:38:20,010 --> 00:38:21,020 que esta pasando. 604 00:38:21,020 --> 00:38:23,310 Rebase le permite evitar eso. 605 00:38:23,310 --> 00:38:26,950 Así que incluso si todavía quieres fusionar, incluso si todavía 606 00:38:26,950 --> 00:38:32,700 querer hacer la exacta lo mismo, puede evitar 607 00:38:32,700 --> 00:38:37,300 que tiene una combinación de cometer, porque digamos que-- así que vamos a hacer esto. 608 00:38:37,300 --> 00:38:43,070 609 00:38:43,070 --> 00:38:44,970 Voy a crear una nueva rama. 610 00:38:44,970 --> 00:38:46,950 Y ahora estoy en esta nueva rama. 611 00:38:46,950 --> 00:38:52,900 Y yo voy a hacer algunos cambios aquí, Basta con crear un nuevo archivo. 612 00:38:52,900 --> 00:39:01,630 613 00:39:01,630 --> 00:39:02,460 >> Correcto. 614 00:39:02,460 --> 00:39:07,910 Y ahora, cuando se fusionan, así que estoy todavía sólo va a fusionar la forma normal. 615 00:39:07,910 --> 00:39:09,550 Voy a volver a dominar. 616 00:39:09,550 --> 00:39:14,490 617 00:39:14,490 --> 00:39:22,330 Y yo voy a fusionar nueva sucursal. 618 00:39:22,330 --> 00:39:25,560 Y verás que dice el avance rápido. 619 00:39:25,560 --> 00:39:28,840 Eso significa que sólo había cambios en un lado de la fusión. 620 00:39:28,840 --> 00:39:33,150 Por lo tanto, no tiene que preocuparse de que cambia debo aceptar. 621 00:39:33,150 --> 00:39:35,400 Ni siquiera tiene que resolver conflictos de auto. 622 00:39:35,400 --> 00:39:38,120 Ni siquiera tiene que pensar sobre si hay conflictos. 623 00:39:38,120 --> 00:39:42,280 Porque sabe hubo confirmaciones eran Sólo añadido en un lado de la combinación. 624 00:39:42,280 --> 00:39:49,180 Así que sólo puedo mover la cabeza de la otra rama hasta después de esas confirmaciones. 625 00:39:49,180 --> 00:39:51,980 >> Así que lo que puede hacer con cambio de base es garantizar 626 00:39:51,980 --> 00:39:56,860 que todos commits-- lo siento, que todos fusiones son el avance rápido se confunde. 627 00:39:56,860 --> 00:40:00,210 Así que si usted tiene un local de rama sólo en su computadora 628 00:40:00,210 --> 00:40:03,390 y que haya hecho un manojo de los cambios en allí, 629 00:40:03,390 --> 00:40:05,760 otro desarrollo que está pasando en maestro. 630 00:40:05,760 --> 00:40:09,140 Todos sus colaboradores, todos los de su compañeros de trabajo, todos los miembros de su proyecto 631 00:40:09,140 --> 00:40:11,679 han estado haciendo su propios cambios para dominar. 632 00:40:11,679 --> 00:40:13,970 Tal vez ellos comenzaron originalmente sus cambios en las ramas 633 00:40:13,970 --> 00:40:16,840 pero luego han fusionaron en o algo así. 634 00:40:16,840 --> 00:40:20,060 Pero el cambio ha ocurrido en el maestro. 635 00:40:20,060 --> 00:40:23,290 >> Y usted está trabajando en una entidad y está en un archivo completamente separados, 636 00:40:23,290 --> 00:40:25,010 así que no hay ningún conflicto. 637 00:40:25,010 --> 00:40:31,660 Usted puede reajustar su sucursal eso es solo local para usted, el de dominar. 638 00:40:31,660 --> 00:40:35,860 Así que cuando combina en ella, que no tiene que preocuparse de nada de esto. 639 00:40:35,860 --> 00:40:37,710 Es sólo una fusión de avance rápido. 640 00:40:37,710 --> 00:40:39,460 Y no lo hace aun crear una fusión cometió. 641 00:40:39,460 --> 00:40:43,930 Es, literalmente, sólo dice, bien, pude poner todas estas confirmaciones en esta rama 642 00:40:43,930 --> 00:40:45,740 así como. 643 00:40:45,740 --> 00:40:48,600 Tiene sentido? 644 00:40:48,600 --> 00:40:51,782 >> ¿Tiene sentido por qué te gustaría hacer esto, y cómo te gustaría hacerlo? 645 00:40:51,782 --> 00:40:55,020 646 00:40:55,020 --> 00:40:59,840 >> AUDIENCIA: Así que en otra Es decir, que están diciendo 647 00:40:59,840 --> 00:41:04,760 tomar todo el trabajo que ha estado hecho de dominar [inaudible]. 648 00:41:04,760 --> 00:41:05,885 ANNA WHITNEY: Sí, exactamente. 649 00:41:05,885 --> 00:41:09,660 650 00:41:09,660 --> 00:41:14,970 Así que esto puede parecer un poco tonto porque es sobre todo acerca de la estética. 651 00:41:14,970 --> 00:41:17,390 Es también un poco trata de hacer las cosas más claras. 652 00:41:17,390 --> 00:41:23,150 Pero no está haciendo una gran diferencia de cómo en realidad se escribe el código. 653 00:41:23,150 --> 00:41:25,920 Algo que puede ser más útil en la práctica regular 654 00:41:25,920 --> 00:41:32,250 es cuando usted está haciendo git pull, usted puede agregar esta opción para él. 655 00:41:32,250 --> 00:41:36,114 656 00:41:36,114 --> 00:41:38,050 Ah. 657 00:41:38,050 --> 00:41:42,680 Así que ya lo hice un montón de cosas, tengo un conflicto. 658 00:41:42,680 --> 00:41:48,930 Pero cuando usted hace un rebase, usted puede tener conflictos 659 00:41:48,930 --> 00:41:52,790 al igual que usted tiene en una fusión, y puede resolver de la misma manera. 660 00:41:52,790 --> 00:41:55,240 >> Pero lo que la idea básica es que cuando hago esto, 661 00:41:55,240 --> 00:41:59,210 dice primer jefe de rebobinado jugar su trabajo en la parte superior de la misma. 662 00:41:59,210 --> 00:42:08,500 Y está, literalmente, va a volver, que va a tomar todos los commits 663 00:42:08,500 --> 00:42:13,320 que yo sólo puse de dondequiera que les he tirado, 664 00:42:13,320 --> 00:42:17,270 desde el control remoto repositorio, y entonces es 665 00:42:17,270 --> 00:42:20,214 va a jugar mi nuevo se compromete en la parte superior de la misma. 666 00:42:20,214 --> 00:42:22,380 En otras palabras, se va para aplicar todos los cambios. 667 00:42:22,380 --> 00:42:27,220 668 00:42:27,220 --> 00:43:05,386 Así que si me preparo esto-- Interesante. 669 00:43:05,386 --> 00:43:06,760 Tal vez eso es una diferencia del sistema. 670 00:43:06,760 --> 00:43:11,270 671 00:43:11,270 --> 00:43:19,880 >> Tan bien. 672 00:43:19,880 --> 00:43:26,590 Así que la idea básica es que ahora si me veo en el registro, 673 00:43:26,590 --> 00:43:36,610 Me ocuparé de que esto sumado mi nombre nuevo. 674 00:43:36,610 --> 00:43:43,790 Así que en realidad esto no era antes-- lo siento, he hecho esto. 675 00:43:43,790 --> 00:43:44,320 Espera. 676 00:43:44,320 --> 00:43:46,277 estoy un poco confundido sobre el orden aquí. 677 00:43:46,277 --> 00:43:48,110 Pero, en esencia, la idea es que hubo 678 00:43:48,110 --> 00:43:53,710 algunas confirmaciones que se encontraban en el control remoto repositorio de que no se había hecho aquí. 679 00:43:53,710 --> 00:43:56,726 680 00:43:56,726 --> 00:43:59,350 Algo que me había empujado, que parece que tal vez accidentalmente 681 00:43:59,350 --> 00:44:02,390 empujado de rama anna. 682 00:44:02,390 --> 00:44:08,880 >> Pero en cualquier caso, cuando me sacó ningún commit que were-- sí. 683 00:44:08,880 --> 00:44:11,860 Mira, en algún momento, accidentalmente empujado de rama ana, 684 00:44:11,860 --> 00:44:14,710 porque tengo la comprometerse anna archivo añadido. 685 00:44:14,710 --> 00:44:19,225 Se dará cuenta de que esa ahora está en allí antes. 686 00:44:19,225 --> 00:44:19,724 No espera. 687 00:44:19,724 --> 00:44:22,020 Eso es de la combinación. 688 00:44:22,020 --> 00:44:24,100 A veces esto es un poco difícil de razonar sobre, 689 00:44:24,100 --> 00:44:29,040 porque en realidad no estoy seguro razón por la que me dio conflictos allí. 690 00:44:29,040 --> 00:44:34,820 Pero la premisa básica es que si Yo tenía un montón de commits-- lo siento. 691 00:44:34,820 --> 00:44:38,490 >> Si otras personas han hecho un montón de comandos de dominar y que había habido 692 00:44:38,490 --> 00:44:42,350 empujado a través del repositorio remoto, y tuve algunos commits locales que 693 00:44:42,350 --> 00:44:49,480 No había empujado sin embargo, y lo hago git tire --- rebase, a continuación, cuando se tira, 694 00:44:49,480 --> 00:44:52,090 en lugar de intentar fusionar, que va a tratar de rebasar. 695 00:44:52,090 --> 00:44:55,870 Y la única diferencia es que entonces terminar con un limpiador de cometer historia, 696 00:44:55,870 --> 00:45:00,370 y en este caso, en realidad tiene mucho más de una diferencia. 697 00:45:00,370 --> 00:45:04,930 Porque si cada vez que tire usted está introduciendo una combinación de cometer, 698 00:45:04,930 --> 00:45:07,170 entonces empieza a ser muy feo, muy rápido. 699 00:45:07,170 --> 00:45:10,670 Y lo que es muy poco claro lo que en realidad estás haciendo. 700 00:45:10,670 --> 00:45:14,050 >> Así que no lo haría necesariamente sugerir que usted 701 00:45:14,050 --> 00:45:17,040 empezar a tratar de rebasar toda tu ramas en lugar de fusionarlos, 702 00:45:17,040 --> 00:45:18,900 o antes de su fusión. 703 00:45:18,900 --> 00:45:21,450 Pero sin duda sugieren que a medida que usted está haciendo esto, 704 00:45:21,450 --> 00:45:28,800 que tal vez intentar tener una idea de git tire con la opción de rebase, --rebase, 705 00:45:28,800 --> 00:45:35,410 porque eso va a recorrer un largo camino hacia la hacer su comprometerse historia más clara, 706 00:45:35,410 --> 00:45:38,520 por lo que es más evidente que estas haciendo. 707 00:45:38,520 --> 00:45:39,960 OKAY. 708 00:45:39,960 --> 00:45:42,915 ¿Alguien tiene preguntas últimos antes de que acaba de terminar. 709 00:45:42,915 --> 00:45:43,697 ¿Sí? 710 00:45:43,697 --> 00:45:44,671 >> AUDIENCIA: [inaudible]. 711 00:45:44,671 --> 00:45:50,040 712 00:45:50,040 --> 00:45:52,740 >> ANNA WHITNEY: Eso no es mi convención de personal, 713 00:45:52,740 --> 00:45:56,880 pero es una especie de convenciones, de manera más general. 714 00:45:56,880 --> 00:45:58,805 Y yo no creo que sea real América. 715 00:45:58,805 --> 00:46:02,920 716 00:46:02,920 --> 00:46:06,659 Sí, así que algo de él es real América, pero es una especie de como-- 717 00:46:06,659 --> 00:46:07,575 AUDIENCIA: [inaudible]. 718 00:46:07,575 --> 00:46:30,810 719 00:46:30,810 --> 00:46:31,982 >> ANNA WHITNEY: OK. 720 00:46:31,982 --> 00:46:33,565 Déjame ver si puedo hacer esto correctamente. 721 00:46:33,565 --> 00:46:36,790 722 00:46:36,790 --> 00:46:39,440 Y entonces el git log debe en realidad mostrar algo útil. 723 00:46:39,440 --> 00:46:45,550 724 00:46:45,550 --> 00:46:46,230 Bien, ahora. 725 00:46:46,230 --> 00:46:58,940 726 00:46:58,940 --> 00:47:03,340 >> AUDIENCIA: De acuerdo, parece griego para mí. 727 00:47:03,340 --> 00:47:06,980 728 00:47:06,980 --> 00:47:08,760 >> ANNA WHITNEY: OK. 729 00:47:08,760 --> 00:47:13,920 Así que ahora vamos a ver si el git registro muestra nada más útil. 730 00:47:13,920 --> 00:47:18,050 731 00:47:18,050 --> 00:47:18,550 Así que sí. 732 00:47:18,550 --> 00:47:22,290 733 00:47:22,290 --> 00:47:28,570 Esto fue cuando merged-- sí. 734 00:47:28,570 --> 00:47:37,200 Así que el cambio fue cuando me fundí el nueva rama, y ​​he creado el nuevo archivo. 735 00:47:37,200 --> 00:47:45,380 Y la última vez que había empujado, todavía dirigir mi nombre en el archivo Loremipsum. 736 00:47:45,380 --> 00:47:50,230 Así que una vez que me fijo, entonces estos se aplicaron después, como si se 737 00:47:50,230 --> 00:47:51,730 Originalmente se había hecho después. 738 00:47:51,730 --> 00:47:55,880 739 00:47:55,880 --> 00:47:57,720 Tiene sentido? 740 00:47:57,720 --> 00:48:01,740 >> Si yo hubiera creado mis ramas para originalmente tratar de ilustrar 741 00:48:01,740 --> 00:48:04,881 este concepto, puede ser que haya trabajado. 742 00:48:04,881 --> 00:48:07,380 Pero yo no estaba seguro de si nos fueron incluso ir para llegar a esto. 743 00:48:07,380 --> 00:48:10,260 744 00:48:10,260 --> 00:48:12,044 Alguna última pregunta? 745 00:48:12,044 --> 00:48:13,028 >> AUDIENCIA: [inaudible]. 746 00:48:13,028 --> 00:48:20,959 747 00:48:20,959 --> 00:48:21,750 ANNA WHITNEY: Sí. 748 00:48:21,750 --> 00:48:23,870 No tiene que ser capaz de leer cosas 749 00:48:23,870 --> 00:48:27,250 para guardarlos en un repositorio git. 750 00:48:27,250 --> 00:48:31,360 Así que resulta que tengo aquí en formato PDF. 751 00:48:31,360 --> 00:48:37,990 Así que todos ustedes, incluso si usted no firma para Git, puede utilizar este folleto. 752 00:48:37,990 --> 00:48:41,780 Está en la página de repositorio. 753 00:48:41,780 --> 00:48:46,460 Una vez más, se puede leer el repositorio, incluso si no estás 754 00:48:46,460 --> 00:48:48,900 colaborador en el repositorio. 755 00:48:48,900 --> 00:48:55,480 Pero es así, no lo hago específicamente editar el formato PDF, ¿verdad? 756 00:48:55,480 --> 00:49:00,600 Pero si puedo guardar una nueva PDF allí, bajo ese nombre, puedo confirmar esos cambios 757 00:49:00,600 --> 00:49:02,950 y empujarlos al repositorio. 758 00:49:02,950 --> 00:49:07,600 >> Es una práctica estándar para menudo no tienen sus archivos binarios viven 759 00:49:07,600 --> 00:49:10,970 en su repositorio a menos que sean va a ser-- si se trata de algo que es 760 00:49:10,970 --> 00:49:14,640 como una acumulación de su solicitud, es probable que deshacerse de él 761 00:49:14,640 --> 00:49:19,640 antes de comprometerse, o poner fuera del repositorio. 762 00:49:19,640 --> 00:49:22,340 Debido sobre todo, como Git no puede manejar archivos de gran tamaño, 763 00:49:22,340 --> 00:49:25,170 o específicamente GitHub no lo hará permitirá subir muy grande 764 00:49:25,170 --> 00:49:29,030 archivos porque es demasiado mucha carga en sus servidores. 765 00:49:29,030 --> 00:49:31,890 También es posible usar Git sin utilizar GitHub, en cuyo caso 766 00:49:31,890 --> 00:49:36,760 usted puede utilizar su, es posible que capaz de mantener archivos de gran tamaño en ese país 767 00:49:36,760 --> 00:49:37,885 si usted tenía su propio servidor. 768 00:49:37,885 --> 00:49:40,872 769 00:49:40,872 --> 00:49:43,205 Pero lo que es más una cuestión de tamaño que de la legibilidad. 770 00:49:43,205 --> 00:49:46,390 771 00:49:46,390 --> 00:49:47,697 ¿Pregunta? 772 00:49:47,697 --> 00:49:48,671 >> AUDIENCIA: [inaudible]. 773 00:49:48,671 --> 00:49:53,607 774 00:49:53,607 --> 00:49:54,440 ANNA WHITNEY: Correcto. 775 00:49:54,440 --> 00:49:59,910 Así que el avance rápido Merge es uno donde todo lo que estamos haciendo 776 00:49:59,910 --> 00:50:03,740 se acaba de tomar algunos commits de un lado de la combinación 777 00:50:03,740 --> 00:50:04,990 y ponerlos en el otro. 778 00:50:04,990 --> 00:50:08,410 Así que si usted está en maestro, no han cambiado amo a todos. 779 00:50:08,410 --> 00:50:10,760 Usted ha hecho un montón de cambios en su rama de la característica, 780 00:50:10,760 --> 00:50:13,350 y se fusionan en la rama de la característica. 781 00:50:13,350 --> 00:50:17,350 Debido a que no había cambios en maestro, 782 00:50:17,350 --> 00:50:23,110 puede pensar en él como buscando en realidad gusta esta foto, en la parte inferior. 783 00:50:23,110 --> 00:50:26,700 La flecha roja no ha progresado, así que todo lo que estás haciendo, esencialmente 784 00:50:26,700 --> 00:50:27,730 está recogiendo esto. 785 00:50:27,730 --> 00:50:31,032 Y ahora diciendo, OK, esto es sólo la flecha roja. 786 00:50:31,032 --> 00:50:33,140 ¿Eso tiene sentido? 787 00:50:33,140 --> 00:50:36,699 >> Y es bueno porque no hay fusión cometió. 788 00:50:36,699 --> 00:50:39,240 Usted sabe que no va a ser cualquier conflicto por definición. 789 00:50:39,240 --> 00:50:41,573 Si hay algún conflicto, que ya los había resuelto 790 00:50:41,573 --> 00:50:42,942 si se hizo algo como esto. 791 00:50:42,942 --> 00:50:43,906 >> AUDIENCIA: [inaudible]. 792 00:50:43,906 --> 00:50:52,110 793 00:50:52,110 --> 00:50:54,910 >> ANNA WHITNEY: En otras palabras, si tiene una imagen como esta 794 00:50:54,910 --> 00:51:00,649 y que hizo una fusión de avance rápido para traer todas estas cosas aquí, 795 00:51:00,649 --> 00:51:03,690 que es un poco difícil de verla en su manera dibujé estos diagramas porque 796 00:51:03,690 --> 00:51:13,149 tendría todavía dos ramas separadas, pero que no se han ido distanciando todavía. 797 00:51:13,149 --> 00:51:15,940 Usted puede pensar que es, básicamente, como, si usted tiene una flecha roja que 798 00:51:15,940 --> 00:51:19,140 va todo el camino hasta aquí, pero tiene una roja y una punta de flecha azul, 799 00:51:19,140 --> 00:51:22,230 y así que usted puede añadir más comete en cualquiera de ellos, 800 00:51:22,230 --> 00:51:23,780 y entonces ellos se separan de nuevo. 801 00:51:23,780 --> 00:51:25,788 Pero son los mismos hasta ese momento. 802 00:51:25,788 --> 00:51:29,540 803 00:51:29,540 --> 00:51:31,792 >> ¿Alguna otra pregunta? 804 00:51:31,792 --> 00:51:32,292 Correcto. 805 00:51:32,292 --> 00:51:33,890 Bueno, muchas gracias. 806 00:51:33,890 --> 00:51:36,542