Archive for August, 2021

History of All Visual C++ Versions

ProductRelease dateC++ version_MSC_VER
Visual Studio 2019 16.1110-Aug-2114.291929
Visual Studio 2019 16.1025-May-2114.291929
Visual Studio 2019 16.902-Mar-2114.281928
Visual Studio 2019 16.910-Nov-2014.281928
Visual Studio 2019 16.705-Aug-2014.271927
Visual Studio 2019 16.619-May-2014.261926
Visual Studio 2019 16.516-Mar-2014.251925
Visual Studio 2019 16.403-Dec-1914.241924
Visual Studio 2019 16.323-Sep-1914.231923
Visual Studio 2019 16.224-Jul-1914.221922
Visual Studio 2019 16.121-May-1914.211921
Visual Studio 2019 16.002-Apr-1914.21920
Visual Studio 2017 15.913-Nov-1814.161916
Visual Studio 2017 15.814-Aug-1814.151915
Visual Studio 2017 15.707-May-1814.141914
Visual Studio 2017 15.605-Mar-1814.131913
Visual Studio 2017 15.504-Dec-1714.121912
Visual Studio 2017 15.409-Oct-1714.111911
Visual Studio 2017 15.314-Aug-1714.111911
Visual Studio 2017 15.210-May-1714.11910
Visual Studio 2017 15.105-Apr-1714.11910
Visual Studio 201707-Mar-1714.11910
Visual Studio 201520-Jul-15141900
Visual Studio 201317-Oct-13121800
Visual Studio 201215-Aug-12111700
Visual Studio 201002-Jul-05101600
Visual Studio 200830-Jun-0591500
Visual Studio 200527-Jun-0581400

Git Command Reference

Git Config

# Set name and email you want attached to your commit transactions
git config --global "[name]"
git config --global "[email address]"

# Enables helpful colorization of command line output
git config --global color.ui auto

# Configure kdiff3 as the merge tool on Windows.
git config --global merge.tool kdiff3
git config --global mergetool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global mergetool.kdiff3.trustExitCode false

Git Branch

git branch -d localBranchName               # Delete branch locally
git push origin --delete remoteBranchName   # Delete branch remotely
git remote prune origin                     # Delete all local branches not on remote
git push --set-upstream origin BRANCH_NAME  # Push local branch to remote; will create a pull request.
git branch --sort=-committerdate            # Print branches ordered by the commit dates.
git branch -vv                              # Show the last local and remote commit on each branch.

Git Checkout

git checkout @{-N}  # Go back N branches.
git checkout -      # Go to the last branch (shorthand to  for the previous command)

Git Diff

git diff                                   # changed but not staged.
git diff --staged                          # staged and ignore local changes.
git diff --cached                          # same as staged.
git difftool                               # use external diff tool.
git diff $startCommit..$endCommit -- FILE  # Compare changes in one file from startCommit to endCommit.
git diff $startCommit..$endCommit          # Compare two commits.

Git Commit

git commit                  # open external editor for commit message
git commit -m "message"
git commit -a -m "message"  # ignore staging and commit all modified files
git commit --amend          # Fix last commit message.

# Add a file missed in the last commit.
git add missed_file.txt
git commit --amend

# Remove a file after committing:
git reset --soft HEAD~1
git reset accidently_added_file.jpg
rm accidently_added_file.jpg
git commit

Git Stash

git stash        # Store the current changes in stash.
git stash pop    # Apply the stashed changes and then drop it.
git stash drop   # Remove the stashed changes.
git stash apply  # Apply the stashed changes and leave them in the stash.

Git Log

git log
git log -p -2 (--patch)
git log --stat
git log --pretty=oneline
git log --pretty=format:"%h - %an, %ar : %s"

Git Reset

git reset --hard HEAD        # Reset all files to the HEAD of the branch:
git checkout HEAD -- FILE    # reset a single file
git reset --soft HEAD~1      # Revert committed changes.

Git Ignore Patterns

The rules for the patterns you can put in the .gitignore file are as follows: