Skip to content

Git for normal people

Richard Darst edited this page Dec 17, 2017 · 2 revisions

Course designed so that everyone can start using version control. Core idea is to teach workflows that are easy, instead of the git developer's ideas.

Goals

  • Understand why version control is useful, compared to cloud service snapshots, renaming files, etc
  • Use git in workflows that are close to subversion. Abstract away the power
  • Use git via only github/gitlab (online editing, viewing trees, PRs, etc).
  • Use git via GUIs and in close cooperation with a hosting service. Some command line is learned, but this is only after easy methods.

Usage models

Course Outline

  • Problems without version control
    • some of these comics, lost revisions, etc. Discussion of snapshotting cloud services and so on.
  • About git
    • Git is by far most popular VCS now, but it was never made for normal people
    • The idea was "better UIs would come later", but guess what: we are still teaching the old way.
    • We call this course "git for normal people". It's not insulting to you, it's insulting to git. The "default" way of working really is not designed for people who just want to get something done
  • Git archeology using github/gitlab
    • Git != github/gitlab, but they are nice interfaces. same features as command line, but command line more powerful.
    • Example exercises:
      • View old commits. When was it first started? What code existing on 1.feb.2017?
      • Get version of file on that day.
      • go dig through history of existing project, find old versions, git blame, etc
  • Git edits using github/gitlab
    • Examples
      • Create project
      • Create file. Intro to commit messages
      • Fork someones' project. Create issues.
      • Create fork, patch, and pull request.
  • Local usage
    • Making git repositories and linking to github/gitlab
    • Commiting locally and pushing
    • Always pull before working, always push as soon as possible (yes, this is simplistic but )
  • Advanced use
    • working on branchs, staging, rebasing (basically incrementally better practices than the simple method recommended above)

References

Clone this wiki locally