Concept
- SCM: Software Configuration Management
- VCS: Version Control Systems
Version Control Systems are just that, software that provides versioning functionality (Git, Subversion, TFS Version Control) all fall into this category.
Software Configuration Management is a broader term that encompasses all the processes needed to build, package, and deploy software – this includes Version Control Systems. It does not refer to software per se.
- working directory / working tree
Unstaged changes exist in our Working Directory, but Git hasn’t recorded them into its version history yet.
-
index/staged
-
HEAD
a reference to the last commit in the currently checked-out branch.
git diff
git diff View difference between Stage and Working Directory
git diff --staged View difference between HEAD and Stage --staged is a synonym of --cached
git diff HEAD View difference between HEAD and Working Directory
git diff commmit-1 commit-2 View difference between commmit-1 and commmit-2
Conclusion
links
git-scm What is the difference between git diff HEAD vs. git diff –staged? What’s the difference between VCS and SCM? How to list all the files in a commit? about-collaborative-development-models