diff --git a/C-git-commands.asc b/C-git-commands.asc index b0f5c54e6..3e3523ef7 100644 --- a/C-git-commands.asc +++ b/C-git-commands.asc @@ -59,18 +59,18 @@ Accompanying the configuration instructions in <>, |Kate (Linux) |`git config --global core.editor "kate --block"` |nano |`git config --global core.editor "nano -w"` |Notepad (Windows 64-bit) |`git config core.editor notepad` -|Notepad++ (Windows 64-bit) |`git config --global core.editor "'C:\Program Files\Notepad++\notepad++.exe' -multiInst -notabbar -nosession -noPlugin"` (Also see note below) +|Notepad++ (Windows 64-bit) |`git config --global core.editor "'C:\Program Files\Notepad+\+\notepad++.exe' -multiInst -notabbar -nosession -noPlugin"` (Also see note below) |Scratch (Linux)|`git config --global core.editor "scratch-text-editor"` |Sublime Text (macOS) |`git config --global core.editor "/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl --new-window --wait"` |Sublime Text (Windows 64-bit) |`git config --global core.editor "'C:\Program Files\Sublime Text 3\sublime_text.exe' -w"` (Also see note below) |TextEdit (macOS)|`git config --global core.editor "open --wait-apps --new -e"` |Textmate |`git config --global core.editor "mate -w"` -|Textpad (Windows 64-bit) |`git config --global core.editor "'C:\Program Files\TextPad 5\TextPad.exe' -m` (Also see note below) +|Textpad (Windows 64-bit) |`git config --global core.editor "'C:\Program Files\TextPad 5\TextPad.exe' -m"` (Also see note below) |UltraEdit (Windows 64-bit) | `git config --global core.editor Uedit32` |Vim |`git config --global core.editor "vim --nofork"` |Visual Studio Code |`git config --global core.editor "code --wait"` |VSCodium (Free/Libre Open Source Software Binaries of VSCode) | `git config --global core.editor "codium --wait"` -|WordPad |`git config --global core.editor '"C:\Program Files\Windows NT\Accessories\wordpad.exe"'"` +|WordPad |`git config --global core.editor "'C:\Program Files\Windows NT\Accessories\wordpad.exe'"` |Xi | `git config --global core.editor "xi --wait"` |============================== diff --git a/Gemfile b/Gemfile index b9ce05859..0893f08a4 100644 --- a/Gemfile +++ b/Gemfile @@ -3,7 +3,7 @@ source 'https://rubygems.org' gem 'rake', '13.2.1' gem 'asciidoctor', '2.0.22' -gem 'json', '2.7.2' +gem 'json', '2.9.1' gem 'awesome_print', '1.9.2' gem 'asciidoctor-fb2', '0.7.0' @@ -13,6 +13,6 @@ gem 'asciidoctor-pdf', '2.3.17' gem 'coderay', '1.1.3' gem 'pygments.rb', '2.4.1' gem 'thread_safe', '0.3.6' -gem 'epubcheck-ruby', '5.1.0.0' +gem 'epubcheck-ruby', '5.2.0.0' gem 'html-proofer', '5.0.9' gem 'kindlegen', '3.1.1' diff --git a/book/01-introduction/sections/first-time-setup.asc b/book/01-introduction/sections/first-time-setup.asc index 5d092ea60..10b7049ce 100644 --- a/book/01-introduction/sections/first-time-setup.asc +++ b/book/01-introduction/sections/first-time-setup.asc @@ -42,7 +42,7 @@ $ git config --global user.name "John Doe" $ git config --global user.email johndoe@example.com ---- -Again, you need to do this only once if you pass the `--global` option, because then Git will always use that information for anything you do on that system. +Again, you need to do this only once if you pass the `--global` option, because then Git will always use that information for your user on that system. If you want to override this with a different name or email address for specific projects, you can run the command without the `--global` option when you're in that project. Many of the GUI tools will help you do this when you first run them. diff --git a/book/03-git-branching/sections/remote-branches.asc b/book/03-git-branching/sections/remote-branches.asc index 723aa7b64..adbb8735d 100644 --- a/book/03-git-branching/sections/remote-branches.asc +++ b/book/03-git-branching/sections/remote-branches.asc @@ -217,8 +217,6 @@ It will simply get the data for you and let you merge it yourself. However, there is a command called `git pull` which is essentially a `git fetch` immediately followed by a `git merge` in most cases. If you have a tracking branch set up as demonstrated in the last section, either by explicitly setting it or by having it created for you by the `clone` or `checkout` commands, `git pull` will look up what server and branch your current branch is tracking, fetch from that server and then try to merge in that remote branch. -Generally it's better to simply use the `fetch` and `merge` commands explicitly as the magic of `git pull` can often be confusing. - [[_delete_branches]] ==== Deleting Remote Branches diff --git a/book/07-git-tools/git-credential-read-only b/book/07-git-tools/git-credential-read-only index b98833c4e..9e984dca9 100755 --- a/book/07-git-tools/git-credential-read-only +++ b/book/07-git-tools/git-credential-read-only @@ -11,7 +11,7 @@ OptionParser.new do |opts| end.parse! exit(0) unless ARGV[0].downcase == 'get' # <2> -exit(0) unless File.exists? path +exit(0) unless File.exist? path known = {} # <3> while line = STDIN.gets diff --git a/book/07-git-tools/sections/debugging.asc b/book/07-git-tools/sections/debugging.asc index bc9d4cad8..dd615c1c7 100644 --- a/book/07-git-tools/sections/debugging.asc +++ b/book/07-git-tools/sections/debugging.asc @@ -111,7 +111,7 @@ Bisecting: 1 revisions left to test after this ---- This commit is fine, and now Git has all the information it needs to determine where the issue was introduced. -It tells you the SHA-1 of the first bad commit and show some of the commit information and which files were modified in that commit so you can figure out what happened that may have introduced this bug: +It tells you the SHA-1 of the first bad commit and shows some of the commit information and which files were modified in that commit so you can figure out what happened that may have introduced this bug: [source,console] ---- diff --git a/book/07-git-tools/sections/submodules.asc b/book/07-git-tools/sections/submodules.asc index 0d667462b..188ff6408 100644 --- a/book/07-git-tools/sections/submodules.asc +++ b/book/07-git-tools/sections/submodules.asc @@ -166,7 +166,7 @@ $ ---- The `DbConnector` directory is there, but empty. -You must run two commands: `git submodule init` to initialize your local configuration file, and `git submodule update` to fetch all the data from that project and check out the appropriate commit listed in your superproject: +You must run two commands from the main project: `git submodule init` to initialize your local configuration file, and `git submodule update` to fetch all the data from that project and check out the appropriate commit listed in your superproject: [source,console] ---- diff --git a/book/09-git-and-other-scms/sections/client-svn.asc b/book/09-git-and-other-scms/sections/client-svn.asc index 502e49982..de330a1b2 100644 --- a/book/09-git-and-other-scms/sections/client-svn.asc +++ b/book/09-git-and-other-scms/sections/client-svn.asc @@ -158,7 +158,7 @@ c3dcbe8488c6240392e8a5d7553bbffcb0f94ef0 refs/remotes/origin/master 6dcb09b5b57875f334f61aebed695e2e4193db5e refs/tags/v1.0.0 ---- -Git fetches the tags directly into `refs/tags`, rather than treating them remote branches. +Git fetches the tags directly into `refs/tags`, rather than treating them as remote branches. ===== Committing Back to Subversion diff --git a/book/A-git-in-other-environments/sections/jetbrainsides.asc b/book/A-git-in-other-environments/sections/jetbrainsides.asc index b7d1f5b1b..1def4a3ed 100644 --- a/book/A-git-in-other-environments/sections/jetbrainsides.asc +++ b/book/A-git-in-other-environments/sections/jetbrainsides.asc @@ -1,5 +1,6 @@ === Git in IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine +(((JetBrains))) JetBrains IDEs (such as IntelliJ IDEA, PyCharm, WebStorm, PhpStorm, RubyMine, and others) ship with a Git Integration plugin. It provides a dedicated view in the IDE to work with Git and GitHub Pull Requests. diff --git a/book/A-git-in-other-environments/sections/sublimetext.asc b/book/A-git-in-other-environments/sections/sublimetext.asc index b303fca9e..d62eff430 100644 --- a/book/A-git-in-other-environments/sections/sublimetext.asc +++ b/book/A-git-in-other-environments/sections/sublimetext.asc @@ -1,5 +1,6 @@ === Git in Sublime Text +(((Sublime Text))) From version 3.2 onwards, Sublime Text has Git integration in the editor. The features are: diff --git a/book/A-git-in-other-environments/sections/visualstudiocode.asc b/book/A-git-in-other-environments/sections/visualstudiocode.asc index d4de8b372..7a646c3b5 100644 --- a/book/A-git-in-other-environments/sections/visualstudiocode.asc +++ b/book/A-git-in-other-environments/sections/visualstudiocode.asc @@ -1,5 +1,6 @@ === Git in Visual Studio Code +(((Visual Studio Code))) Visual Studio Code has Git support built in. You will need to have Git version 2.0.0 (or newer) installed. diff --git a/book/B-embedding-git/sections/jgit.asc b/book/B-embedding-git/sections/jgit.asc index fc042563f..74ae05a38 100644 --- a/book/B-embedding-git/sections/jgit.asc +++ b/book/B-embedding-git/sections/jgit.asc @@ -3,7 +3,7 @@ (((jgit)))(((Java))) If you want to use Git from within a Java program, there is a fully featured Git library called JGit. JGit is a relatively full-featured implementation of Git written natively in Java, and is widely used in the Java community. -The JGit project is under the Eclipse umbrella, and its home can be found at https://www.eclipse.org/jgit/[^]. +The JGit project is under the Eclipse umbrella, and its home can be found at https://projects.eclipse.org/projects/technology.jgit[^]. ==== Getting Set Up @@ -22,7 +22,7 @@ Probably the easiest is to use Maven – the integration is accomplished by addi The `version` will most likely have advanced by the time you read this; check https://mvnrepository.com/artifact/org.eclipse.jgit/org.eclipse.jgit[^] for updated repository information. Once this step is done, Maven will automatically acquire and use the JGit libraries that you'll need. -If you would rather manage the binary dependencies yourself, pre-built JGit binaries are available from https://www.eclipse.org/jgit/download[^]. +If you would rather manage the binary dependencies yourself, pre-built JGit binaries are available from https://projects.eclipse.org/projects/technology.jgit/downloads[^]. You can build them into your project by running a command like this: [source,console] @@ -155,6 +155,6 @@ Many other commands are available through the Git class, including but not limit This is only a small sampling of JGit's full capabilities. If you're interested and want to learn more, here's where to look for information and inspiration: -* The official JGit API documentation can be found at https://www.eclipse.org/jgit/documentation[^]. +* The official JGit API documentation can be found at https://help.eclipse.org/latest/topic/org.eclipse.egit.doc/help/JGit/User_Guide/User-Guide.html[^]. These are standard Javadoc, so your favorite JVM IDE will be able to install them locally, as well. * The JGit Cookbook at https://github.com/centic9/jgit-cookbook[^] has many examples of how to do specific tasks with JGit. diff --git a/diagram-source/progit.sketch b/diagram-source/progit.sketch index 4aa4eab83..51603807a 100644 Binary files a/diagram-source/progit.sketch and b/diagram-source/progit.sketch differ diff --git a/images/centralized.png b/images/centralized.png index 4cdaca133..03fe1b5cf 100644 Binary files a/images/centralized.png and b/images/centralized.png differ diff --git a/images/centralized.svg b/images/centralized.svg index b5583f1c7..cc521660b 100644 --- a/images/centralized.svg +++ b/images/centralized.svg @@ -1,39 +1,255 @@ - - + + image/svg+xml - images/centralized + images/local - images/centralized - Created with Sketch. - - - - - developer - - - - developer - - - - developer - + images/local + Created with Sketch. + + + + + File + + + + + + Version Database + + + + Version 3 + + + + Version 2 + + + + Version 1 + + + + + + + + + + + + + + + + Computer A + Central VCS Server + Computer B + + + File + - - - - - - sharedrepository - - - - diff --git a/images/centralized_workflow.svg b/images/centralized_workflow.svg new file mode 100644 index 000000000..b5583f1c7 --- /dev/null +++ b/images/centralized_workflow.svg @@ -0,0 +1,39 @@ + + + + + + image/svg+xml + + images/centralized + + + + images/centralized + Created with Sketch. + + + + + developer + + + + developer + + + + developer + + + + + + + + sharedrepository + + + + + diff --git a/images/managed-team-flow.png b/images/managed-team-flow.png index 7593cdaf5..039cb9a65 100644 Binary files a/images/managed-team-flow.png and b/images/managed-team-flow.png differ diff --git a/images/managed-team-flow.svg b/images/managed-team-flow.svg index 6bddb3ef2..1ae8a02f2 100644 --- a/images/managed-team-flow.svg +++ b/images/managed-team-flow.svg @@ -1,17 +1,17 @@ + inkscape:version="1.4 (e7c3feb100, 2024-10-09)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:current-layer="ref" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" /> @@ -69,13 +72,11 @@ id="master" font-size="12px" font-weight="700" - style="font-weight:700;font-size:12px;font-family:'Source Code Pro';text-anchor:middle;fill:#979797"> - Josie - + style="fill:#f0f0f0">John - Josie - + style="fill:#f0f0f0">John - John - + style="fill:#f0f0f0">Josie - John - + style="fill:#f0f0f0">Josie - Jessica - + style="fill:#f0f0f0">Jessica - Jessica - + style="fill:#f0f0f0">Jessica - git commit - git commit(A) - + y="86.195312">(A) - git commit - git commit(B) - + y="364.19531">(B) - git fetch origin - + y="176">git fetch origin - git fetch origin - + y="470.19531">git fetch origin - git fetch origin - + y="384">git fetch origin - git push origin featureA - + y="105.40576">git push origin featureA - git push origin featureA - + y="583.40576">git push origin featureA - git push origin featureA - + y="247.69531">git push origin featureA - git push origin featureBee - + y="323.69531">git push origin featureBee - git push origin featureB:featureBee - + y="446.19531">git push origin featureB:featureBee - git commit - git commit(A) - + y="155.69531">(A) - git commit - git commit(B) - + y="296.69531">(B) - git merge - git merge(B) - + y="427.19531">(B) - git merge - git merge(A) - + y="515.19531">(A) - git commit - git commit(A) - + y="565.19531">(A) - git merge - git merge(A) - + y="220.69531">(A) - i18-world + i18n-world