summaryrefslogtreecommitdiffstats
path: root/git.md
diff options
context:
space:
mode:
Diffstat (limited to 'git.md')
-rw-r--r--git.md70
1 files changed, 70 insertions, 0 deletions
diff --git a/git.md b/git.md
new file mode 100644
index 0000000..877a959
--- /dev/null
+++ b/git.md
@@ -0,0 +1,70 @@
+(Jag vet inte vad som är mest larvigt, att skriva "pusha" eller "knuffa" enligt
+git på svenska https://github.com/bjorne/git-pa-svenska.)
+
+## git-kommandon lokalt
+
+Rekommenderad läsning:
+
+- https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes
+- https://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows
+- (Egentligen hela boken)
+
+Om det redan finns ett repository med en annan remote som ska bytas ut:
+
+$ git remote set-url origin git@git.xn--srns-noa9h.se:{USER}/{REPOSITORY}
+
+Om det redan finns ett repository där en remote ska läggas till (antingen
+parallellt med en redan existerande eller som en ny):
+
+$ git remote add {REMOTE} git@git.xn--srns-noa9h.se:{USER}/{REPOSITORY}
+
+För att pusha alla lokala branches och taggar (kan vara bra om hela projektet
+ska flyttas till den nya remoten):
+
+$ git push {REMOTE} --all
+
+Om remoten istället ska vara en spegling av en specifik branch räcker det med
+
+$ git push {REMOTE} {BRANCH}
+
+Om en branch ska trackas av remoten, specifiera -u.
+
+$ git push -u {REMOTE} {BRANCH}
+
+Det går också att sätta upp tracking utan att göra en push med
+
+$ git branch {BRANCH} --set-upstream-to={REMOTE}/{REMOTE-BRANCH}
+$ git branch develop --set-upstream-to=origin/develop # exempel
+
+Om ett nytt repository ska skapas med ett lokalt repository i samma veva går det
+att göra i ett steg.
+
+$ git clone git@git.xn--srns-noa9h.se:{USER}/{REPOSITORY}
+
+## Hantera andras rättigheter
+
+Rekommenderad läsning:
+
+- https://gitolite.com/gitolite/conf.html#access-rules
+- https://gitolite.com/gitolite/user.html
+
+Om andra ska ha tillgång till ett repository behöver de specifieras som
+reader/writer. (Egentligen är att specifiera reader onödigt eftersom alla redan
+har läsrättigheter via HTTPS.) Endast personer med en ssh-nyckel på servern kan
+specifieras som reader/writer. Som tur är är det inte en säkerhetsrisk att lägga
+till sådana nycklar eftersom de inte kan användas för att logga in i en
+skalmiljö, så om du av någon anledning vill lägga till en kollega eller någon
+annan är det bara att skicka iväg en publik ssh-nyckel (skapad med antingen
+vanliga openssh på macos/\*nix eller git bash på windows) till mig med ett önskat
+användarnamn.
+
+För att ändra rättigheter används, smidigt nog, ssh.
+
+$ ssh git@git.xn--srns-noa9h.se help
+$ ssh git@git.xn--srns-noa9h.se info # för att se alla (nåbara) repositories
+$ ssh git@git.xn--srns-noa9h.se perms {REPOSITORY} {+/-} {GROUP} {USERNAME}
+
+Till exempel:
+
+$ git clone git@git.xn--srns-noa9h.se:gustav/aoc/2019 aoc-2019
+$ ssh git@git.xn--srns-noa9h.se perms gustav/aoc/2019 + WRITERS henrik