I don't know if I'm posting in the right place but am I the only dumb fucking faggot that can't for the life of me figure out how github works? I have a group assignment and one of the guys wants us to share what we are doing on github. Dude I'm already having a hard time doing the actual questions why are you asking us to do this when we could share a txt file with eachother and the result would be the same.
I should point out that I'm not a CS student so...
Git is a version control system. It's like keeping copies of a file that you work on except better organized; also, git is particularly good for text files (pure text, such as Notepad and code -- not Microsoft Word) because it's very good at showing differences between versions and performing operations on these differences (copying, deleting, combining multiple versions into one, etc). Only one version exists at the same time on disk as original browsable/editable files, everything else is stored in the history in complicated ways. You can pick and activate any version at any time.
But, what if several people are working on the same project and they need to update each other on their work? You can put your whole work history into a zip file and send it to someone else, but then he'd have to somehow add your changes to his own. With many people working on their own tasks (or perhaps on the same task!) at the same time, this gets impossible. What people do is make a git server, and then each participant updates the server ("push") and downloads other people's updates ("pull"). You can set your own server on a computer you own or rent. There is/was a KiwiFarms git server.
Because git is free, there are multiple businesses that
- offer to host a server and add their own proprietary gay features such as comments on code, comments on versions, dashboards, discussions, complaints, etc
- and/or make proprietary software that's a git server with their proprietary gay features for you to host.
They differ in what features they provide, what features they provide and what limits they set for free accounts, etc.
Github does both: there's github.com, the social network for trannies and jeets where they sometimes post code, and Github Enterprise Server (to run your own social network).
You’ll get a prompt to login to the repo, github has some faggot ass bullshit where you can’t just use your username and password, you have to create a special key and then copy that in everytime you do a commit. It’s annoying.
VSCode/VSCodium has a github addon that integrates with their faggot ass bullshit and allows logging in on the website, somehow.
@Wigger Rights Advocate, VSCode (Microsoft pozzed), VSCodium (de-Microsofted) and other text/code editors for bad programmers have a graphical interface for git and Github.
glossary:
- commit (noun): a saved and numbered version, a.k.a. "revision"
- commit hash / revision number: a 40-digit hexadecimal number of the commit
- commit (noun) message: the human-readable name of the version that you write yourself
- commit (verb): save a snapshot of the selected changes as a new version
- stage (verb): add changes to be saved in the next commit (you don't have to save all changes at once)
- branch: a series of commits, commits can only be added to the end of a branch
- check out (verb): restore a version to disk
- head: the commit that's currently checked out
- detached head: what happens when you check out a specific version by its 40-character number rather than a branch (you won't be able to commit your changes)
- a commit that's not on the end a branch will always be a detached head, a commit that's on the end of a branch can also be unintentionally checked out as a detached head
- unsaved changes: changes that are not formally saved to the file on disk (your text editor might still keep them somewhere, just in case) -- if you open the file with a different editor, these changes will not be visible
- uncommitted changes: differences between files on disk and the end of the currently active branch; when you check out another commit, you will lose uncommitted changes
- stash (noun, verb): git's special cache to optionally store uncommitted changes when you just want to have a brief look at another commit and come back to your work
- editors can have their own stashes
- unstaged changes: differences between files on disk and the end of the currently active branch that haven't been added and therefore won't be included in the next commit
- origin: the default name for the remote server; git can keep some "origin" branches cached locally
- push: upload your commits to a remote server and add your changes
- force push: upload your commits to a remote server and overwrite someone else's changes with yours
- merge: what you do if you want to push your changes to the server but someone else added other changes and you don't want to lose them
- pull: download someone else's commits from the server and merge them with your work
- fetch: download someone else's commits from the server but only update the local cache of remote branches, do not merge with your work
- merge conflict: git can't decide how to merge two versions and makes specially annotated files for you to fix manually