A mostly reasonable approach to repositories.
.
| .gitattributes
| .gitignore
| LICENSE
| README.md
| {name}.sln
|
+---build
+---docs
| \---.assets
|
+---lib
+---samples
+---src
\---testsbuild- Any scripts related to building the solution, this is NOT an output folderdocs- Any documentation related to the repository.assets- Any repository scoped assets
lib- Any dependencies that must be local, and cannot be installed from a hosted package managersamples- Any projects/files used to provide an example, or for demonstration purposessrc- Any projects/files that make up the source code for the solutiontests- Any projects/files related to testing the source code
Ensure that commits are not made directly to the master branch, and undergo a code review process.
When merging pull requests, prefer to squash and merge; this results in a cleaner commit log and efficient history navigation, whilst also taking away pressure from development branches.
This facilitates freedom to experiment, revert, cherry-pick, commit often with preferred messages, as well as increasing the confidence of non-developers or non-technical team members to contribute.
Version control provides the ability to review past changes, there is no need to pollute the code base and its history.
These comments can easily become out-of-date; they are not an effective way of tracking and storing related discussions.
Use appropriate project management tools and services, there is no need to pollute the code base and its history.
An exception to this is a GitHub User Pages repository, which expects to be named {username}.github.io.
DO:
awesome-projectDON'T:
Awesome-ProjectawesomeprojectAwesomeProjectAwesome.Project