summaryrefslogtreecommitdiffstats
path: root/instructions_git.md
blob: 97bc7dbd1c60996467d0631711313354f3ca4832 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# How to setup git

This procedure will give you a cloudflare-tor fork with a
privacy-respecting configuration to do pushes with SSH over Tor using
codeberg.org ("CDB").  This procedure is designed for ***linux***.
The first step covers Windows too, but these instructions probably
need more adaptations for Windows and other platforms.


- Linux: `aptitude install git tor ssh`
- Windows: Download `https://github.com/git-for-windows/git/releases/PortableGit-2.21.0-64-bit.7z` & run `git-bash.exe`


[1]
```
    host codeberg-*
         hostname     codeberg.org
         ForwardX11   no
         ProxyCommand connect -4 -S 127.0.0.1:9050 $(tor-resolve %h 127.0.0.1:9050) %p
    host codeberg-snowden
         IdentityFile /home/user/.ssh/id_rsa_codeberg-snowden
```

[2]
```
[user]
        email = BM-yadayadayada6fgnLfybVnCcWf25AGZcgg@bitmessage.ch
        name = snowden
[remote "origin"]
        url = git@codeberg-snowden:snowden/cloudflare-tor.git
     	fetch = +refs/heads/*:refs/remotes/origin/*
[remote "upstream"]
        url = git@codeberg-snowden:crimeflare/cloudflare-tor.git
     	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
	remote = origin
	merge = refs/heads/master
```

<ol>
<li> install Git, SSH(Not Windows), and Tor (if you haven't already)
<li> create a `codeberg.org` account (username "snowden" will be used for this example)
<li> create an SSH key pair `$ ssh-keygen -t rsa -N '' -C 'snowden at codeberg' -f "$HOME"/.ssh/id_rsa_codeberg-snowden`
<li> edit `$HOME/.ssh/config`[1]
<li> copy `"$HOME"/.ssh/id_rsa_codeberg-snowden.pub` to clipboard
<li> codeberg.org > settings > SSH/GPG Keys > add key (paste from clipboard)
<li> $ `firefox https://codeberg.org/crimeflare/cloudflare-tor`
<li> fork it (top right corner)
<li> go to the directory you want the project to be rooted in (hereafter we'll call it `$project_root`).
<li> anonymously download your fork: $ `torsocks git clone https://codeberg.org/snowden/cloudflare-tor`
<li> edit `$project_root/cloudflare-tor/.git/config` to include the
   account name and email address that will be on every commit, as
   well as the URL[2]
```
[user]
        email = BM-yadayadayada6fgnLfybVnCcWf25AGZcgg@bitmessage.ch
        name = snowden
[remote "origin"]
        url = git@codeberg-snowden:snowden/cloudflare-tor.git
     	fetch = +refs/heads/*:refs/remotes/origin/*
[remote "upstream"]
        url = git@codeberg-snowden:crimeflare/cloudflare-tor.git
     	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
	remote = origin
	merge = refs/heads/master
```
<li> make your first change
<li> (from `$project_root`) $ `git add . -u -n`
<li> check that the files listed are what you changed and intend to push upstream
<li> if yes: `$ git add . -u`
<li> $ `git commit -m 'description of first change'`
<li> $ `git push origin master`
<li> $ `firefox https://codeberg.org/crimeflare/cloudflare-tor`
<li> make a new pull request
</ol>

&nbsp;

Notice that only the `git clone` command has a `torsocks` prefix and
all git commands thereafter do not.  Whenever git operates on the
cloudflare-tor project, all connections to codeberg are automatically over
Tor with this configuration (because the `url` in `.git/config`
references the virtual host `codeberg-snowden` in `~/.ssh/config`).