* Git ** To create a repo on gogs 1. git config --global user.name "@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 3. ~git checkout -b ~ - ~-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 ~ 4. ~git merge master~ 5. ~git add -A~ 6. ~git commit -m "concise explanation of what I did"~ 7. ~git push origin ~ 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~