Closed zme1 closed 7 years ago
I'm excited that we can introduce command line git very early in the semester, without any of the foolishness of the GUI. I agree that the terminal can take new coders up to two weeks to learn and treat as a tool rather than some scary black hole.
I agree with Zac that we should recreate a merge conflict in class to demonstrate that it isn't scary, but a normal and sometimes unavoidable thing. This can be part of teaching the best practice work flow of using Git, including pulling before starting to work, committing after doing something major, and pushing when you need someone else to see your progress. New Git users tend to push a lot, which makes merge conflicts more common.
Yes, merge conflicts seem to be the biggest bugaboo with having students (or anyone else) use GitHub, so we are considering, perhaps, regular practice in pulling content, and possibly creating (and mitigating) a merge conflict intentionally.... stay tuned!
The introductory reading, along with the first two homework assignments, very effectively serve to give students a basic working knowledge of the terminal and how it relates to the remote repository on Github. I think that it covers the transaction process in great depth and leaves no stone unturned in regard to managing the remote files from a local drive. My group last semester (myself included) took about two-ish weeks to learn to use the terminal as a resource and not treat it as an obstacle (such as overstepping the procedures by editing directly on the remote files, which don't enforce the XML syntax). I am confident that our full reliance on Github in all the classes assignments will force an even faster learning process on the class (again, myself included).
As for additional clarifications, and speaking solely from personal experience, I know that the biggest area of concern for me in my work with Github was merge conflicts, how to address them and obviously how to be proactive in avoiding them entirely. The literature explains how these situations arise exhaustively, as well as solutions to the problems. In my own work last semester, though, these conflicts seemed to be somewhat panic-ridden, and I found myself muddled and confused, spending time allocated for my project on trying to reconcile a mistake I created on my local drive. That said, I can't think of a homework assignment that would address this issue with the students or myself, but I think maybe a demo on merge conflict resolution may be a good use of 10 or 15 minutes of class time, if at all possible.