-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathgit_cmd.txt
More file actions
204 lines (136 loc) · 6.76 KB
/
git_cmd.txt
File metadata and controls
204 lines (136 loc) · 6.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
COMANDOS GIT
* Identidad
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
* Editor por defecto
$ git config --global core.editor emacs
* Herramienta de diferencias
# Se usa para resolver conflictos
$ git config --global merge.tool vimdiff
* Comprobar configuración
$ git config --list
* Obtener ayuda
$ git help <comando>
$ git <comando> --help
$ man git-<comando>
/*********** Comandos Básicos *************/
* Iniciar un repositorio en un directorio existente
$ git init
$ git add *.c
$ git add README
$ git commit –m 'versión inicial del proyecto'
$ git commit # Abre una ventana en Vim para escribir el mensaje de la confirmación del cambio
/***** Eliminar Commit *****/
$ git reset --soft HEAD~1 #Elimina el commit más reciente, guardando el trabajo realizado
$ git reset --hard HEAD~1 # Elimina el commit más reciente destruyendo el trabajo que has hecho
/** Cambiar el ultimo commit enviado a GitHub **/
Si ya he enviado ina confirmación y deseo cambiarlo, debo forzar el envio del commit cambiado con el comando. Recuerde que ya debe haber cambiado el commit localmente
$ git push --force origin master
* Cambiar mensaje de commit antiguos
git rebase -i HEAD~3 # Displays a list of the last 3 commits on the current branch
pick e499d89 Delete CNAME
reword 0c39034 Better README
Luego reemplazar pick con reword antes de cada mensaje del commit que desee cambiar y guardar los cambios.
Finalmente forzar el envío
git push --force
/**** Clonar un Repositorio ****/
$ git clone [url]
$ git clone git://github.com/schacon/grit.git mygrit # Renombra el directorio al clonar <mygrit>
* Comprobar estado de los archivos
$ git status # Mustra los archivos añadidos o eliminados
$ git diff # Muestra las líneas añadidas y eliminadas, muestra los cambios que no han sido preparados.
/**** Saltar el área de preparación ****/
$ git commit -a -m 'added new benchmarks' # Prepara todos los archivos, sin necesidad
de agregar el comando git add
* Eliminando archivos
$ git rm <file> # Elimina el archivo del staging area
* Moviendo archivos
$ git mv <file_from> <file_to> # Renombra los archivos
* Viendo el histórico de confirmaciones
$ git log
$ git log -p # Muestra las diferencias introducidas en cada confirmación
$ git log -2 # Muestra únicamente las dos últimas entradas del histórico
$ git log --stat # Muestra las estadísticas de cada confirmación
$ git log --oneline # Muesta información de un commit en una línea
* Modificando la última confirmación
$ git commit --amend # Reescribe el mensaje y los archivos para realizar la confirmación
* Deshaciendo preparación de un archivo
$ git reset HEAD <file> # Saca el archivo del staging area
* Deshaciendo la modificación de un archivo
$ git checkout -- <file> # Elimina las modificaciones que le hayas hecho al archivo
/******** Trabajando con repositorios remotos *********/
* Mostrar repositorios remotos
$ git remote # Obtiene el nombre del repositorio remoto
$ git remote -v # Obtiene la url del repositorio
* Añadiendo repositorios remotos
$ git remote add [nombre] [url]
* Recibiendo repositorios remotos
$ git fetch [remote-name] # Recupera todos los datos del proyecto remoto que no tengas todavía.
pero no une las rama remota con la local
$ git pull # Trae los datos del proyecto remoto y lo une a las rama del repositorio local
* Enviar datos a repositorio remoto
$ git push [nombre-remoto][nombre-rama]
# Importante
Este comando funciona únicamente si has clonado de un servidor en el que tienes permiso de escritura, y nadie ha enviado información mientras tanto. Si tú y otra persona clonais a la vez, y él envía su información y luego envías tú la tuya, tu envío será rechazado. Tendrás que bajarte primero su trabajo e incorporarlo en el tuyo para que se te permita hacer un envío. Véase el Capítulo 3 para ver en detalle cómo enviar a servidores remotos
* Inspeccionando un repositorio remoto
$ git remote show [nombre]
* Renombrando repositorios remotos
$ git remote rename [from] [to]
/********** Etiquetas *********/
Especifica puntos especificos importantes en la historio, por ejemplo vesiones.
* Listar etiquetas
$ git tag
$ git tag -l 'v1.4.2.*' # Busca etiquetas por un patron en particular
* Crear etiquetas anotadas
$ git tag -a v1.4 -m 'my version 1.4'
# Esto muestra la información del autor de la etiqueta, la fecha en la que la confirmación fue etiquetada, y # el mensaje de anotación antes de mostrar la información de la confirmación.
*Crear etiquetas firmadas
$ git tag -s v1.5 -m 'my signed 1.5 tag'
# Crea una etiqueta firmada con GPG, siempre que tengas una clave privada
* Crear etiquetas ligeras
$ git tag v1.4-lw # Este tipo de etiqueta no almacena información extra
* Verificar etiquetas firmadas
git tag -v [tag-name]
* Etiquetar commit
$ git tag -a v1.2 -m 'version 1.2' 9fceb02 # Agregar una etiqueta a un commit
* Editar etiquetas
$ git tag <tag name> <tag name> -f -m "<new message>"
# Creará una nueva etiqueta con el mismo nombre sobreescribiendo la original
# Si quires editar una etiqueta a un commit específico, Git permite hacerlo
$ git tag --force [tag name] [commit id]
En caso de que haya subido ya la etiqueta debe forzar envío
$ git push origin --force --tags
* Enviar etiquetas
git push origin [tagname] # Git no manda las etiquetas al servidor cuando de hace un push, para ello
se debe hacer un push al igual como una rama pero con el nombre de la etiqueta
$ git push origin --tags # Envía varias etiquetas a la vez
/******************* Alias en Git **********************/
Git permite colocar alias a los comandos que vienen por defecto
$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status
$ git config --global alias.unstage 'reset HEAD --'
$ git config --global alias.last 'log -1 HEAD'
/******************** Branch ***************************/
* Listar ramas del proyecto local
$ git branch
* Crear ramas
$ git branch name-branch
* Crear ramas y cambiar a la rama creada
$ git checkout -b name-branch
* Traer ramas remotas
$ git pull origin name-branch
* Eliminar ramas remotas
$ git push origin --delete name-branch
/***************** Creación de primeros archivos para repositorio ***********************/
* create a new repository on the command line
$ echo "# Emproyect" >> README.md
$ git init
$ git add README.md
$ git commit -m "first commit"
$ git remote add origin git@github.com:ideascompany/Emproyect.git
$ git push -u origin master
* push an existing repository from the command line
$ git remote add origin git@github.com:ideascompany/Emproyect.git
$ git push -u origin master