| Line 1: |
Line 1: |
| − | == Install== | + | ==Install== |
| | sudo add-apt-repository ppa:git-core/ppa -y | | sudo add-apt-repository ppa:git-core/ppa -y |
| | sudo apt-get update | | sudo apt-get update |
| | sudo apt-get install git | | sudo apt-get install git |
| | git --version | | git --version |
| − | == Clone == | + | ==Clone== |
| | git clone <repository_path> | | git clone <repository_path> |
| − | === Clone with submodules === | + | ===Clone with submodules=== |
| | git clone --recurse-submodules -j8 git@git.rra.lan:python/pilaf/Converter.git | | git clone --recurse-submodules -j8 git@git.rra.lan:python/pilaf/Converter.git |
| − | * Note: -j8 increases performance cloning up to 8 submodules at a time | + | |
| | + | *Note: -j8 increases performance cloning up to 8 submodules at a time |
| | | | |
| | To update repositories with submodules use: | | To update repositories with submodules use: |
| | git pull --recurse-submodules | | git pull --recurse-submodules |
| | | | |
| − | == add/commit/push == | + | ==add/commit/push== |
| | git add . | | git add . |
| | git add -A | | git add -A |
| Line 20: |
Line 21: |
| | git push origin master | | git push origin master |
| | | | |
| − | == Branching == | + | ==Branching== |
| | git checkout -b <branch_name> | | git checkout -b <branch_name> |
| | git merge | | git merge |
| | | | |
| − | === git Successful Feature Branching Workflow === | + | ===git Successful Feature Branching Workflow=== |
| | Onece you have cloned the master repository: | | Onece you have cloned the master repository: |
| − | * Create a branch for each feature | + | |
| − | * Merge branches with --no-ff | + | *Create a branch for each feature |
| | + | *Merge branches with --no-ff |
| | | | |
| | git checkout -b <branch_name> | | git checkout -b <branch_name> |
| Line 37: |
Line 39: |
| | git reset --hard f414f31 | | git reset --hard f414f31 |
| | | | |
| − | == Undo last changes == | + | ==Undo last changes== |
| | git checkout -- . | | git checkout -- . |
| | | | |
| − | == add remote == | + | ==add remote== |
| | git remote add <repository_name> <repository_path> | | git remote add <repository_name> <repository_path> |
| | | | |
| − | == list remote == | + | ==list remote== |
| | git remote -v | | git remote -v |
| | | | |
| − | == Modify remote url == | + | ==Modify remote url== |
| | git remote set-url origin <new_url/new_repository.git | | git remote set-url origin <new_url/new_repository.git |
| | | | |
| − | == remove remote == | + | ==remove remote== |
| | git rm <repository_name> | | git rm <repository_name> |
| | | | |
| − | == pull/push == | + | ==pull/push== |
| | git push <repository_name> | | git push <repository_name> |
| | git pull <repository_name> | | git pull <repository_name> |
| Line 59: |
Line 61: |
| | git push --all origin | | git push --all origin |
| | | | |
| − | === Tags === | + | ===Tags=== |
| | To fetch tags: | | To fetch tags: |
| | git fetch --tags | | git fetch --tags |
| Line 65: |
Line 67: |
| | git push origin --tags | | git push origin --tags |
| | | | |
| − | === Full copy of remote repository: === | + | ===Full copy of remote repository:=== |
| | <nowiki>#!/bin/bash | | <nowiki>#!/bin/bash |
| − | for branch in `git branch -r | grep -v HEAD | grep -v master`; do | + | for branch in `git branch -r | grep -v HEAD | grep -v master`; do |
| − | echo ${branch##*/} $branch
| + | echo ${branch##*/} $branch |
| − | done | + | done |
| − | git fetch --all | + | git fetch --all |
| − | git pull -v</nowiki> | + | git pull -v</nowiki> |
| | | | |
| − | == Add .gitignore == | + | ==Add .gitignore== |
| | Add the file to the git folder | | Add the file to the git folder |
| | To stop following and delete the files that were allready being tracked: | | To stop following and delete the files that were allready being tracked: |
| Line 80: |
Line 82: |
| | git commit -m ".gitignore now working" | | git commit -m ".gitignore now working" |
| | | | |
| − | # To undo git rm --cached filename use: git add filename | + | #To undo git rm --cached filename use: git add filename |
| − | == git config == | + | |
| | + | ==git config== |
| | git config --global push.default [matching | simple] | | git config --global push.default [matching | simple] |
| | git config --global user.name "Nombre Apellido" | | git config --global user.name "Nombre Apellido" |
| | git config --global user.email "user@domain.com" | | git config --global user.email "user@domain.com" |
| − | === Self Signed Certificates === | + | |
| | + | === Default editor === |
| | + | <syntaxhighlight lang="bash"> |
| | + | git config core.editor "nano -w" |
| | + | </syntaxhighlight> |
| | + | |
| | + | ==Self Signed Certificates== |
| | To allow cloning and pushing to a git repository over https whit a self signed certificate you must configure: | | To allow cloning and pushing to a git repository over https whit a self signed certificate you must configure: |
| | git config --global http.sslVerify false | | git config --global http.sslVerify false |
| Line 91: |
Line 100: |
| | git -c http.sslVerify=false clone https://domain.com/path/to/git | | git -c http.sslVerify=false clone https://domain.com/path/to/git |
| | | | |
| − | == assume-unchanged == | + | ==assume-unchanged== |
| | This will make git to stop tracking changes on <file> | | This will make git to stop tracking changes on <file> |
| | git update-index --assume-unchanged <file> | | git update-index --assume-unchanged <file> |
| Line 100: |
Line 109: |
| | To view which files are not being tracked: | | To view which files are not being tracked: |
| | git ls-files -v|grep '^h' | | git ls-files -v|grep '^h' |
| − | == Set upstream branch == | + | ==Set upstream branch== |
| | git branch --set-upstream-to=origin/master | | git branch --set-upstream-to=origin/master |
| | | | |
| − | == Change last commit == | + | ==Change last commit== |
| | git commit --amend | | git commit --amend |
| | | | |
| − | == Change older commit messages == | + | ==Change older commit messages== |
| | git rebase -i HEAD~n | | git rebase -i HEAD~n |
| | Replace pick with reword before each commit message you want to change.<br /> | | Replace pick with reword before each commit message you want to change.<br /> |
| Line 116: |
Line 125: |
| | | | |
| | | | |
| − | == Cheat Sheet == | + | ==Cheat Sheet== |
| | http://wiki.herrerosolis.com/images/4/46/Git-cheat-sheet.pdf | | http://wiki.herrerosolis.com/images/4/46/Git-cheat-sheet.pdf |