1
0
dox/org/git.org
2019-01-26 13:43:52 -08:00

94 lines
2.4 KiB
Org Mode

* Git
** To create a repo
on gogs
1. git config --global user.name "<gogsusername>@whatever"
2. create repo in gogs
on computer
3. apt install git
4. git clone repo
5. touch README.md
6. git add -A
7. git commit -m "first commit"
8. git push origin master
** To collaborate on an existing repo
1. Be added as a collaborator
2. git clone <repo address (from gogs)>
3. ~git checkout -b <branchname>~
- ~-b~ creates a new branch if one doesn't exist
- you can name branch anything, start w/ your gogs name
4. make changes
** To push up your changes
1. ~git checkout master~
2. ~git pull origin master~
3. ~git checkout <branchname>~
4. ~git merge master~
5. ~git add -A~
6. ~git commit -m "concise explanation of what I did"~
7. ~git push origin <yourname>~
8. submit a pull request
Change last commit before pushing:
git add [more files]
git commit --amend
* Walkthrough
This little walkthrough uses this repository as an example.
** Cloning
~git clone https://irc.anarchyplanet.org/git/AnarchyPlanet/dox~
If you added a ssh key already:
~git clone git@HOST:user/repo~
** Forking
To change a repository you'll need a local copy of it, this is called forking a git repository.
You can do so by clicking on 'Fork' at the top right of the web interface.
** Remotes
Git can manage multiple remote locations called ~remotes~.
The default remote after cloning is ~origin~.
This makes sense when cloning your own, if you started with someone else's repository it makes sense to rename it to ~upstream~:
~git remote rename origin upstream~
Now add your fork URL:
~git remote add origin git@irc.anarchyplanet.org:2222:USER/dox~
For this to work you need to define the key file in ~.ssh/config~:
```
Host AP
Hostname irc.anarchyplanet.org
User git
Port 2222
IdentityFile ~/.ssh/id_rsa
```
After this your .git/config should have these sections:
```
[remote "upstream"]
url = https://irc.anarchyplanet.org/git/AnarchyPlanet/dox
fetch = +refs/heads/*:refs/remotes/upstream/*
[remote "origin"]
url = AP:USER/dox
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = upstream
merge = refs/heads/master
```
Now you should be able to push:
~git push origin branchname --set-upstream origin branchname~