Tuesday, April 26, 2016

Day 2—Git at Open textbooks in MathBook XML Workshop

If you are going to collaborate with co-authors over time and space, you need a method of communication. If you are going to communicate across distance, your options snail mail, the telephone, or some form of electronic communication. Electronic communication might be email, DropBox, or the Cloud. If you use one of the above and working with others, you will have to be very careful that you don't get in one another's way.  Two people editing the same file at the same time could result in chaos.

The answer to this dilemma is to use a version control system such as one of the ones used by software engineers. Git is such a system. With Git, you can create a project repository that lives on the Internet.  Each co-author can pull from that repository, work locally on his or her local computer, and then push your changes back to the repository, where any conflicts can be resolved.  You may have several versions on your local machine and then push up to the repository once you are satisfied with any additions or changes that you have made. Every Git working directory is a full-fledged repository with complete history and full version-tracking capabilities, independent of network access or a central server. Like the Linux kernel, Git is free software distributed under the terms of the GNU General Public License version 2.



Of course, you will need someplace to host your project repository.  GitHub (https://github.com) is one possibility.  You can host a public project on GitHub for free, but there is a monthly subscription fee if you want to host private projects.  I currently have five private projects that are books, instructor solutions manuals, and class notes in various stages of development.  I am finding GitHub very useful. Some of my other colleagues are either hosting or obtaining projects from GitHub.

To learn more about Git and GitHub, see http://mathbook.pugetsound.edu/gfa/html/git-for-authors.html.

No comments:

Post a Comment