Changes

Jump to navigation Jump to search
722 bytes added ,  13:49, 9 April 2024
m
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>
== add/commit/push ==
+
===Clone with submodules===
 +
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
 +
 
 +
To update repositories with submodules use:
 +
git pull --recurse-submodules
 +
 
 +
==add/commit/push==
 
  git add .
 
  git add .
 
  git add -A
 
  git add -A
 
  git commit -m "Message of commit"
 
  git commit -m "Message of commit"
 +
git commit -am "Message"  # add and commit in one line
 
  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 29: 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 51: 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 57: 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 72: 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 83: 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 92: 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 106: Line 123:     
   
 
   
 +
== Create git aliases ==
    +
=== count-lines Alias ===
 +
<syntaxhighlight lang="bash">
 +
git config --global alias.count-lines "! git log --author=\"\$1\" --pretty=tformat: --numstat | awk '{ add += \$1; subs += \$2; loc += \$1 - \$2 } END { printf \"added lines: %s, removed lines: %s, total lines: %s\n\", add, subs, loc }' #"
 +
</syntaxhighlight>
   −
== 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

Navigation menu