GitHub and Git Sociology Hacks Week 7

Terms and Usage

  • A “git clone” makes a local Git repository (decentralized) from the cloud server (GitHub/Git).
  • A .git directory contains a local database (see illustration) that keeps track of local changes.
  • A “git commit” makes a child snapshot of the original parent on the local database. Git commits over time are a series of Secure Hashing Algorithms (SHA’s). This is the math behind a git snapshot.
  • The .gitignore file tells .git to ignore certain files in directory tree (ie files constructed from source or derived files, like ipynb files that turn into md files).
  • The “git push” command moves files from local system back to cloud server (GitHub). However, often a merge is required as the decentralized system can have many simultaneous contributors. Students will experience this when they share a repository.
  • To minimize conflicts, Developers use Git branches and/or GitHub Forks to push code to an isolated locations on the server/cloud. This simply delays the inevitable merge, but has benefit of keeping developers branch of project stable.
  • Pull requests is common process used to merge code from isolated Fork back to the primary GitHub repository.
  • A “git rebase” is a common command for Developer on an isolated Git branch to update their environment from the “main” branch. Often this is done prior to a “git push” back the “main” branch.

Hacks

Any sociology questions within team need to be answered with a Blog, A Scrum Master working with other Developers should establish the Github administration/sociology policies

  • What is the main repository for your project?
  • Did you create a .gitignore to avoid committing files that ‘don’t belong in version control?

  • Have you established Issues as part of your Development process?
  • Have you considered making Pull Requests to track development?
  • Have you considered forks or branching techniques with pull requests?

  • Are you managing Issues on a Project Board/Scrum Board like Kanban?