103 lines
3.2 KiB
Markdown
103 lines
3.2 KiB
Markdown
# Git cheat sheet
|
|
|
|
#### Checka ut specifik commit
|
|
|
|
<code>git checkout {{sha}}</code>
|
|
|
|
#### Checka ut senaste commit
|
|
|
|
<code>git checkout master</code>
|
|
|
|
#### Byt remote
|
|
|
|
<pre><code>git remote rm origin
|
|
git remote add origin {{URL to repo}}
|
|
git push -u origin master
|
|
git remote -v</code></pre>
|
|
|
|
Alternativt
|
|
|
|
<pre><code>git remote rm origin
|
|
git remote add origin {{URL to repo}}
|
|
git pull origin master
|
|
git branch --set-upstream-to=origin/master
|
|
git pull</code></pre>
|
|
|
|
|
|
#### Förhindra Git push
|
|
|
|
<code>git remote set-url --push origin no-pushing</code>
|
|
|
|
#### Slå ihop flera repon ####
|
|
Merge project-a into project-b:
|
|
|
|
<pre><code>cd path/to/project-b
|
|
git remote add project-a /path/to/project-a
|
|
git fetch project-a --tags
|
|
git merge --allow-unrelated-histories project-a/master # or whichever branch you want to merge
|
|
git remote remove project-a</code></pre>
|
|
|
|
#### Pull repository, ignorera och skriv över lokala filer
|
|
|
|
<pre><code>git fetch --all
|
|
git reset --hard
|
|
git pull</code></pre>
|
|
|
|
#### Återställ lokal arbetskatalog till utcheckad version
|
|
<code>git reset --hard</code>
|
|
<strong>VARNING</strong> - Ta bort icke trackade filer. Lägg till parametern "n" för "dry run" för att se vilka filer som kommer att raderas.
|
|
<code>git clean -f -d</code>
|
|
<strong>VARNING</strong> - Som ovan men raderar ävan ignorerade filer.
|
|
<code>git clean -f -x -d</code>
|
|
<strong>VARNING</strong> - Som ovan men raderar även filer i underkataloger (utan :/ rensas bara aktuell katalog)
|
|
<code>git clean -fxd :/</code>
|
|
|
|
## Konfigurera CR/LF
|
|
Default för Windows är denna inställning.
|
|
<pre><code>git config --global core.autocrlf true</code></pre>
|
|
Detta kommer att ersätta från det lokala systemets radbrytning till [LF] när repot checkas in. Om du kopierar filer från externa system till det lokala repot och Git detekterar detta som att filerna ändrats kan du använda detta kommando för att fixa detta.
|
|
<pre><code>git add --renormalize .</code></pre>
|
|
|
|
Andra alternativ:
|
|
<pre><code>git config --global core.autocrlf false</code></pre>
|
|
<pre><code>git config --global core.eol lf</code></pre>
|
|
<pre><code>git config core.eol crlf</code></pre>
|
|
|
|
## Ta bort filer från repository (behåll lokalt)
|
|
<pre><code>git rm --cached file_to_remove.txt</code></pre>
|
|
Eller för en hel katalog (rekursivt)
|
|
<pre><code>git rm --cached -r directory_to_remove</code></pre>
|
|
|
|
## Autentisering
|
|
|
|
### Linux
|
|
|
|
* Skapa ny SSH nyckel
|
|
|
|
<code>ssh-keygen -t rsa -b 4096</code>
|
|
|
|
Alternativt lägg till <code>-C "<user@domain.com>"</code>
|
|
|
|
* Lägg till id_rsa.pub som SSH-nyckel för repot
|
|
|
|
* Sätt remote repo till git@... istället för https:// ...
|
|
|
|
* Gör en pull för att verifiera att allt fungerar
|
|
|
|
#### Aktivera credential store
|
|
|
|
Alternativt aktivera credential.helper store. Observera att detta sparar inloggningsinformation i klartext i ~/.git-credentials
|
|
|
|
<pre><code>git config --global credential.helper store</code></pre>
|
|
|
|
### Windows
|
|
|
|
#### Aktivera Windows Credentials manager
|
|
|
|
<pre><code>git config --global credential.helper manager
|
|
git config --list</code></pre>
|
|
|
|
#### Kontrollera användarinformation lagrad i Windows Credentials manager
|
|
|
|
<code>rundll32.exe keymgr.dll,KRShowKeyMgr</code>
|