$ git status
$ git init
$ git add readme.txt
$ git add .
$ git add *.html
$ touch created.txt
$ git add created.txt
$ git commit
usar i para insertar comentario de commit
uasr :wq para salir
$ git commit -m "segundo commit!"
para crear un branch
$ git branch NewBranch
para cambiarse al branch
$ git checkout NewBranch
se crea un archivo en NewBranch
$ git touch index.css
para regresar al master branch
$ git checkout master
para merge o unir los archivos en el master del branch NewBranch
$ git merge NewBranch
esto integra al master los cambios realizados en el NewBranch en este caso el archivo index.css
$ git commit -a -m "mensaje"
hace un add, y solo funciona con archivos ya creados y commiteados.
Al tener cambios en el mismo archivo en diferentes branches, al momento de unirlo al master
da un mensaje como el siguiente, y se debe resolver manualmente acomodando el contenido del archivo, y borrando las marcas que agrego git. o sea <<<<<HEAD ====== >>>>master
change x
<<<<<<< HEAD
change 7
=======
change 6
>>>>>>> master
despues del arreglo se commitea
$ git mergetool
es para invocar a una herramienta especializada para el arreglo de conflictos
Para configurar la herramienta mergetool de git, damos el siguiente comando, además se pueden configurar otras cosas en el archivo de configuración
$git config --global -e
Las siguientes lineas se tienen que ajustar en el archivo de configuración, además configuramos el notepad para edicion sencilla.
[diff]
tool = C:\\Program Files\\KDiff3\\kdiff3.exe
[merge]
tool = kdiff3
[mergetool "kdiff3"]
path = C:\\Program Files\\KDiff3\\kdiff3.exe
keepBackup = false
trustExitCode = false
[guitool "notepad..."]
cmd = notepad $ARGS
argprompt = yes
Para lo anterior debemos tener instalado el KDiff3, que es herramienta para merge.
winmerge es una herramienta como otras
Tambien puede hacerse desde windows
Esta es la vista del Mergetool que tiene integrado el IntelliJ
Este es el Git log integrado en IntelliJ
== Stage feature ==
on NewBranch master
$ touch newfile.txt
$ git checkout master
newfile.txt permanece visible en master
$ git checkout NewBranch
$ git add .
$ git stash
Saved working directory and index state WIP on NewBranch: 0983747 change Variante2
HEAD is now at 0983747 change Variante2
----------
$ git remote
$ git clone alberto.martinez@104.156.xxx.xxx:~/lab_beto
$ git remote
$ cd subdirectorio si aplica
$ git remote
origin
$ git remote -v
$ git fetch origin
con pull automaticamente fetch and merge
$ git pull origin
$ git commit -a -m "readme changes"
to push or change to remote repository to origin and commit them into the master branch
$ git push origin master
entonces requiere user y password
$ git remote add MyRepository http://github.com/somerepo.git
$ git remote
Myrepo
origin
$ git remote -v
MyRepo http://github.com/somerepo.git (fetch)
MyRepo http://github.com/somerepo.git (push)
origin http://github.com/dustindavis/FluentGuard.git (fetch)
origin http://github.com/dustindavis/FluentGuard.git (push)
$ git fetch myrepo
$ git stash apply
On branch NewBranch
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: gittest.txt.bak
new file: gittest.txt.orig
new file: gittest_BACKUP_8288.txt
new file: gittest_BASE_8288.txt
new file: gittest_LOCAL_8288.txt
new file: gittest_REMOTE_8288.txt
new file: newfile.txt
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: gittest.txt
Un ejemplo de archivo .gitignore
# gitignore configuration # package files .jar .war .ear # generated files .class # directories out/*
No hay comentarios:
Publicar un comentario