swcarpentry / git-novice

Version Control with Git
http://swcarpentry.github.io/git-novice/
Other
335 stars 916 forks source link

Should we provide guidance about git workflows #849

Open mlell opened 2 years ago

mlell commented 2 years ago

I am using git to track my research scripts, so no multi-committer software project, but scripts with few to no collaborators. When I started using git, I hit some problems that were not related to understanding git (I felt well-equipped, having learned a lot at https://learngitbranching.js.org/) but to the workflow. With this I do not (only) mean workflows like "git flow", but for example

Over time, I tried out different approaches, and noticed that I kept abandoning git several times (piling up uncommitted changes), especially when there was much work and little time. So I think that somewhat informally, I abandoned strategies when they would take too much of two resources:

With growing experience, the burden of using git decreases, so there might be increasing flexibility of "good enough" ways to use git productively, but I have noticed by myself and from observing colleagues that novices will abandon git quickly if there is more than slight mental and time load. After all, tools are only useful if they make work easier, not more complicated.

Therefore, I think the long-term impact of the work could be improved if learners leave with a workflow that might not leverage all possibilities of git but takes minimal time and mental load so that they keep using it, discovering and incorporating more and more features over time as they need them.

How could this be done? I am thinking of a "feature matrix" where different requirements are listed and different workflows.

I can't even think of all different possible requirements and workflows. So you can comment how/whether you think this should be taught, as well as share the workflows that you use and what requirements you satisfy with them!

kekoziar commented 2 years ago

@mlell This is an interesting concept. I wonder if it's more suited for a data carpentry workshop, since workflows will be different depending on the discipline and/or scope of project.