User Tools

Site Tools


git

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
git [2026/06/07 00:33] – [tag] jhagstrandgit [2026/06/07 23:56] (current) – [Configuration] jhagstrand
Line 112: Line 112:
   line 2 is blank, this is what signals git to split title and body   line 2 is blank, this is what signals git to split title and body
   line 3+ is body, max 72 chars per line, hit enter to hardcode each newline   line 3+ is body, max 72 chars per line, hit enter to hardcode each newline
 +
 +The commit message title style guide.
 +  * Like a document sub-heading
 +  * Imperative
 +  * Start with capital letter, no period at the end
 +  * No articles or filler
 +
  
 The history log of commit messages, combined with skillful use of the branch, merge, reset, and rebase commands enable a programmer to communicate to future developers exactly what he changed and how, why and when. The history log of commit messages, combined with skillful use of the branch, merge, reset, and rebase commands enable a programmer to communicate to future developers exactly what he changed and how, why and when.
Line 129: Line 136:
   git tag -d 1.0 # delete a tag   git tag -d 1.0 # delete a tag
  
-Tags are often used to implement public release versioning.+Tags are often used to implement public release versioning.  There are three common version formats.
  
-Marketing Versioning, like macOS Sonoma+  * Marketing Versioning, like macOS Sonoma
  
-Calendar Versioning, like 2026.06.04+  * Calendar Versioning, like 2026.06.04
  
-Semantic Versioning (SemVer) +  * Semantic Versioning (SemVer) 
-  * see https://semver.org/ +    * see https://semver.org/ 
-  * major.minor.patch, like v3.6.2 +    * major.minor.patch, like v3.6.2 
-  * minor and patch releases maintain backward compatibility +    * minor and patch releases maintain backward compatibility 
-  * as soon as backward compatibility is broken, the major number must be incremented +    * as soon as backward compatibility is broken, the major number must be incremented 
-  applies to libraries with a public api+    important for a library with a public api, for example
  
-(I long for the good old days, when breaking backward compatibility was a sign of incompetence.)+(I remember the good old days, when broken backward compatibility was a sign of incompetence.)
  
 ====worktree==== ====worktree====
Line 229: Line 236:
 git log --oneline --graph # shows a hierarchy of branches git log --oneline --graph # shows a hierarchy of branches
  
 +==== interactive rebase ====
  
 +If you don't like the way the log looks now, the interactive rebase command lets you fix, reorder, drop and squash the commits, and reword the commit messages.  Do this in a branch you are working solo, not a public branch or one that has already been pushed.
 +
 +  $ git switch mybranch
 +  $ git rebase -i HEAD~3
 +  $ git rebase -i b619fca0
 +
 +The log is displayed in reverse chronological order.
 +
 +The interactive rebase editor window displays the commits in chronological order.
 +
 +A note about reordering the commits.  The interactive rebase operation will start at the base and reapply your commits in new new order, rewriting your source code files in each commit.  It is possible to break code if you make a mistake.
 +
 +https://www.sitepoint.com/git-interactive-rebase-guide/
 ===== How to use ===== ===== How to use =====
  
 +
 +==== Configuration ====
 +
 +Use git config --global to set name and email.  
 +  * Support anonymity by using a shielded email, like for example the private GitLab noreply masked email.
 +  * Consider using a pair-programming persona as user.name to give credit to the AI author.
 +
 +  $ git config --global user.name "Your Name"
 +  $ git config --global user.name "Your Name & Gemini 1.5 Flash"  # pair-programming personna
 +  $ git config --global user.email "jerry@gmail.com"              # protect privacy on public host like gitlab
 +
 +Aider automatically adds a Co-authored by: line to the body.  Tell aider to skip that by adding parameters to .aider.conf.yml file:
 +  attribute-author: false
 +  attribute-committer: false
  
 ====Create a new repository==== ====Create a new repository====
git.1780806838.txt.gz · Last modified: 2026/06/07 00:33 by jhagstrand

Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki