Archiv der Kategorie: git

Apache: Git-Ordner und Dateien mit führendem Punkt nicht anzeigen

Deploy eines Projektes via Git (git pull) hinterlässt den .git-Ordner, der ungewollt viele Informationen preisgeben kann. Ebenso Dateien mit führendem Punkt, die als Temporär-Datei oder Config-Datei sensible Informationen enthalten können.
Um das zu vermeiden folgendes Snippet für die apache2.conf:

<Directorymatch "^/.*/\.git/">
    Order deny,allow
    Deny from all
</Directorymatch>
<FilesMatch "^\.">
    Order allow,deny
    Deny from all
</FilesMatch>
<FilesMatch "(^#.*#|\.(bak|conf|dist|fla|in[ci]|log|orig|psd|sh|sql|sw[op])|~)$">
    Order allow,deny
    Deny from all
</FilesMatch>

Git: Unterordner aus Github herunterladen

Github erlaubt normalerweise nur den kompletten Checkout eines Projektes, was für die Geduld des Users und die Bandbreite des Netzwerkes unbefriedigend ist. Als eines der wenigen Git-Repositories funktioniert aber ein SVN Fallback, der es erlaubt, ein beliebiges Unterverzeichnis herunterzuladen.

Dazu muss auf dem Zielrechner SVN installiert sein (sudo apt-get install subversion).

Der Befehl zum Download:

svn export  https://github.com/medianetix/demo.git/trunk/ordner1/ordner2/

An die https-URL des Repos (demo.git) wird der Ordner „trunk“ angehängt und dann der gewünschte Unterordner (hier: ordner1/ordner2).

Authentication realm: <https://github.com:443> GitHub
Username: medianetix
Password for 'medianetix': ***************

Nach Eingabe Username/Password wird dann der Download der Dateien aus dem entsprechenden Ordner/Unterordner gestartet:

A    ordner2
A    ordner2/.placeholder
A    ordner2/05-06-2018_1138.pdf
A    ordner2/06-02-2018_0547.pdf

git: Nützliche Befehle

Anzeige ähnlich tig:

git log --graph --decorate --pretty=oneline --abbrev-commit

Farbliches Auflisten der Commits (um einzelne Spalten besser lesen zu können)

git log --pretty=tformat:'%h %Cblue%cr%Creset %cn %Cgreen%s%Creset'

Git: Exisiterendes Remote Repo in GitLab übertragen

Ausgang:
– Existierendes Repo mit gitolite
– Soll in GitLab mit allen Branches, Tags etc. importiert werden

1) Auschecken existierendes Gitolite-Repo (als Mirror / BARE)
{Hier kann auch jedes andere Git-Repo ausgescheckt werden, die URL sieht dann entsprechend anders aus.}

git clone --mirror git://gitoliteserver.de/tools.git

Der Parameter „–mirror“ kopiert alle Branches, Tags etc. mit. Das geklonte lokale Repo ist eine Kopie des alten remote Repos.

2) Anlegen leeres GitLab-Repo (über Webinterface – hier nicht dargestellt)

3) Importieren ins Gitlab-Repo

git remote set-url --push origin git@gitlabserver.de:tools.git
git push --mirror

Damit wird dem Bare-Repo die URL des Gitlab-Servers mitgeteilt.
Der Push-Befehl mit dem „–mirror“ Parameter exportiert dann wieder alles in das neue remote Repo auf dem Gitlab-Server.