User Tools

Site Tools


tech:devops:git

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
tech:devops:git [2018/02/02 14:59]
rk4n3
tech:devops:git [2019/06/08 13:19] (current)
rk4n3
Line 1: Line 1:
  
 ====== General Git Topics ====== ====== General Git Topics ======
 +
 +==== Basic Config ====
 +<​code>​git config --global user.name 'Your Name'
 +git config --global user.email '​your@email.com'​
 +git config --global core.pager 'less -x3r'
 +git config --global diff.tool '​vimdiff'​
 +git config --global diff.guitool '​gvimdiff'​
 +git config --global difftool.prompt '​false'​
 +git config --global http.sslverify '​false'</​code>​
 +
 ==== Some history/​view tips ==== ==== Some history/​view tips ====
   * Show files involved in a particular commit: <​code>​git diff-tree --no-commit-id --name-only -r commitid</​code>​   * Show files involved in a particular commit: <​code>​git diff-tree --no-commit-id --name-only -r commitid</​code>​
Line 25: Line 35:
  \\  \\
  
 +------
 +====== GitLab ======
 +==== Import Project into Gitlab ====
 +<​code>​
 +git clone --mirror https://​github.com/​you/​prj
 +cd prj.git
 +# HTTP URL http://​gitlab.example.com/​you/​prj.git
 +git remote add gitlab git@git.albertleadata.org:​you/​prj.git
 +git push gitlab --mirror
 +
 +# Switch local clone to new repo:
 +git remote remove origin
 +git remote add origin git@git.albertleadata.org:​you/​prj.git
 +git fetch --all
 +</​code>​
 +
 + \\
 +
 +------
 ====== Github ====== ====== Github ======
 ===== Manage your fork's sync with upstream ===== ===== Manage your fork's sync with upstream =====
Line 56: Line 85:
   * Install from repository: <​code>​apt install git-lfs</​code>​   * Install from repository: <​code>​apt install git-lfs</​code>​
   * Each user will need to do: ''​git lfs install''​   * Each user will need to do: ''​git lfs install''​
 +
 +
 +===== Git Service over HTTP/HTTPS =====
 +==== ... for Apache ====
 +First //(as root)//:<​code>​
 +mkdir -p /​var/​www/​git
 +chown msamud1:​apache /​var/​www/​git
 +chmod 2750 /​var/​www/​git
 +chcon -t httpd_sys_content_t /​var/​www/​git
 +</​code>​
 +Then, create auth file with something like:  ''​htpasswd -c /​var/​www/​git/​.htpasswd git''​ //... prompted for password//
 +
 +=== For anonymous read/write ... ===
 +In ''/​etc/​httpd/​conf.d/​git.conf'':<​code>​
 +# Git-smart HTTP/HTTPS back-end
 +SetEnv GIT_PROJECT_ROOT /​var/​www/​git
 +SetEnv GIT_HTTP_EXPORT_ALL
 +ScriptAlias /git/ /​usr/​libexec/​git-core/​git-http-backend/​
 +
 +<​Directory "/​usr/​libexec/​git-core">​
 + Options +ExecCGI
 + Require all granted
 +</​Directory>​
 +
 +<​LocationMatch "​^/​git/​.*/​git-receive-pack$">​
 + Order allow,deny
 + Allow from all
 +</​LocationMatch>​
 +</​code>​
 +
 +
 +=== ... or, for anonymous read and authenticated write ... ===
 +In ''/​etc/​httpd/​conf.d/​git.conf'':<​code>​
 +# Git-smart HTTP/HTTPS back-end
 +SetEnv GIT_PROJECT_ROOT /​var/​www/​git
 +SetEnv GIT_HTTP_EXPORT_ALL
 +ScriptAlias /git/ /​usr/​libexec/​git-core/​git-http-backend/​
 +
 +<​Directory "/​usr/​libexec/​git-core">​
 + Options +ExecCGI
 + Require all granted
 +</​Directory>​
 +
 +<​LocationMatch "​^/​git/​.*/​git-receive-pack$">​
 + Order allow,deny
 + AuthType Basic
 + AuthName "Git Access"​
 + AuthUserFile /​var/​www/​git/​.htpasswd
 + Require valid-user
 +# Require group committers
 +</​LocationMatch>​
 +</​code>​
 +
 +
 +=== ... or, for authenticated read/write ... ===
 +In ''/​etc/​httpd/​conf.d/​git.conf'':<​code>​
 +# Git-smart HTTP/HTTPS back-end
 +SetEnv GIT_PROJECT_ROOT /​var/​www/​git
 +SetEnv GIT_HTTP_EXPORT_ALL
 +ScriptAlias /git/ /​usr/​libexec/​git-core/​git-http-backend/​
 +
 +<​Directory "/​usr/​libexec/​git-core">​
 + Options +ExecCGI
 + Order deny,allow
 + AuthType Basic
 + AuthName "​Private Git Access"​
 + AuthUserFile /​var/​www/​git/​.htpasswd
 + Require valid-user
 +</​Directory>​
 +</​code>​
 +
 +=== ... or, for LDAP authentication ... ===
 +Ensure ''​mod_ldap''​ is installed, then in ''/​etc/​httpd/​conf.d/​git.conf'':​
 +<​code> ​
 +<​Directory "/​usr/​libexec/​git-core">​
 + Options +ExecCGI
 + Order deny,allow
 + AuthType Basic
 + AuthName "​Private Git Access"​
 + AuthBasicProvider ldap
 + AuthLDAPURL "​ldap://​cosmos.samudio.net/​dc=samudio,​dc=net?​uid?​sub?"​
 + Require valid-user
 +</​Directory>​
 +</​code>​
 +
 +=== ... Active Directory AuthLDAPURL ... ===
 +<​code>​AuthLDAPURL "​ldap://​ad-ldap-prod.uhc.com/​dc=ms,​dc=ds,​dc=uhc,​dc=com?​sAMAccountName?​sub?​(objectCategory=person)(objectClass=user)"</​code>​
 +
 +=== ... add specific location auth ... ===
 +<​code>​
 +<​LocationMatch "​^/​git/​yourrepo.*">​
 +... add same LDAP constructs, except for ...
 + Require ldap-attribute sAMAccountName="​yourlogin"​
 +</​LocationMatch>​
 +</​code>​
  
  \\  \\
 // Links: [[tech:​start|Tech Info]] ... [[tech:​devops:​start|Devops Info]] // \\ // Links: [[tech:​start|Tech Info]] ... [[tech:​devops:​start|Devops Info]] // \\
  
tech/devops/git.1517605148.txt.gz ยท Last modified: 2018/02/02 14:59 by rk4n3