diff --git a/C-git-commands.asc b/C-git-commands.asc index 79c497545..3e3523ef7 100644 --- a/C-git-commands.asc +++ b/C-git-commands.asc @@ -55,22 +55,22 @@ Accompanying the configuration instructions in <>, |Emacs |`git config --global core.editor emacs` |Gedit (Linux) |`git config --global core.editor "gedit --wait --new-window"` |Gvim (Windows 64-bit) |`git config --global core.editor "'C:\Program Files\Vim\vim72\gvim.exe' --nofork '%*'"` (Also see note below) -|Helix |`git config --global core.editor "helix"` +|Helix |`git config --global core.editor "hx"` |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 42ea95854..0893f08a4 100644 --- a/Gemfile +++ b/Gemfile @@ -1,18 +1,18 @@ source 'https://rubygems.org' -gem 'rake', '13.0.6' -gem 'asciidoctor', '2.0.20' +gem 'rake', '13.2.1' +gem 'asciidoctor', '2.0.22' -gem 'json', '2.6.3' +gem 'json', '2.9.1' gem 'awesome_print', '1.9.2' gem 'asciidoctor-fb2', '0.7.0' -gem 'asciidoctor-epub3', '1.5.1' -gem 'asciidoctor-pdf', '2.3.7' +gem 'asciidoctor-epub3', '2.1.3' +gem 'asciidoctor-pdf', '2.3.17' gem 'coderay', '1.1.3' -gem 'pygments.rb', '2.4.0' +gem 'pygments.rb', '2.4.1' gem 'thread_safe', '0.3.6' -gem 'epubcheck-ruby', '5.1.0.0' -gem 'html-proofer', '5.0.8' +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/about-version-control.asc b/book/01-introduction/sections/about-version-control.asc index 5db49fb18..182fcedc0 100644 --- a/book/01-introduction/sections/about-version-control.asc +++ b/book/01-introduction/sections/about-version-control.asc @@ -50,7 +50,7 @@ Local VCSs suffer from this same problem -- whenever you have the entire history (((version control,distributed))) This is where Distributed Version Control Systems (DVCSs) step in. -In a DVCS (such as Git, Mercurial, Bazaar or Darcs), clients don't just check out the latest snapshot of the files; rather, they fully mirror the repository, including its full history. +In a DVCS (such as Git, Mercurial or Darcs), clients don't just check out the latest snapshot of the files; rather, they fully mirror the repository, including its full history. Thus, if any server dies, and these systems were collaborating via that server, any of the client repositories can be copied back up to the server to restore it. Every clone is really a full backup of all the data. 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/01-introduction/sections/what-is-git.asc b/book/01-introduction/sections/what-is-git.asc index 8953b9d48..466201b23 100644 --- a/book/01-introduction/sections/what-is-git.asc +++ b/book/01-introduction/sections/what-is-git.asc @@ -10,7 +10,7 @@ Even though Git's user interface is fairly similar to these other VCSs, Git stor The major difference between Git and any other VCS (Subversion and friends included) is the way Git thinks about its data. Conceptually, most other systems store information as a list of file-based changes. -These other systems (CVS, Subversion, Perforce, Bazaar, and so on) think of the information they store as a set of files and the changes made to each file over time (this is commonly described as _delta-based_ version control). +These other systems (CVS, Subversion, Perforce, and so on) think of the information they store as a set of files and the changes made to each file over time (this is commonly described as _delta-based_ version control). .Storing data as changes to a base version of each file image::images/deltas.png[Storing data as changes to a base version of each file] diff --git a/book/02-git-basics/sections/remotes.asc b/book/02-git-basics/sections/remotes.asc index 2deb8fba0..80e98250a 100644 --- a/book/02-git-basics/sections/remotes.asc +++ b/book/02-git-basics/sections/remotes.asc @@ -87,7 +87,7 @@ pb https://github.com/paulboone/ticgit (fetch) pb https://github.com/paulboone/ticgit (push) ---- -Now you can use the string `pb` on the command line in lieu of the whole URL. +Now you can use the string `pb` on the command line instead of the whole URL. For example, if you want to fetch all the information that Paul has but that you don't yet have in your repository, you can run `git fetch pb`: [source,console] 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/04-git-server/sections/gitlab.asc b/book/04-git-server/sections/gitlab.asc index 27148ccb8..97de78937 100644 --- a/book/04-git-server/sections/gitlab.asc +++ b/book/04-git-server/sections/gitlab.asc @@ -24,8 +24,9 @@ For more information read the https://gitlab.com/gitlab-org/gitlab-foss/-/blob/m ==== Administration GitLab's administration interface is accessed over the web. -Simply point your browser to the hostname or IP address where GitLab is installed, and log in as the admin user. -The default username is `admin@local.host`, and the default password is `5iveL!fe` (which you must change right away). +Simply point your browser to the hostname or IP address where GitLab is installed, and log in as the `root` user. +The password will depend on your installation type but by default, Omnibus GitLab automatically generates a password for and stores it to /etc/gitlab/initial_root_password for at least 24 hours. +Follow the documentation for more details. After you've logged in, click the "`Admin area`" icon in the menu at the top right. [[gitlab_menu]] 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 47096120a..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] ---- @@ -466,7 +466,7 @@ You have to do some extra steps if you want changes in a submodule to be tracked In order to set up your submodule to be easier to go in and hack on, you need to do two things. You need to go into each submodule and check out a branch to work on. -Then you need to tell Git what to do if you have made changes and then `git submodule update --remote` pulls in new work from upstream. +Then you need to tell Git what to do if you have made changes and later `git submodule update --remote` pulls in new work from upstream. The options are that you can merge them into your local work, or you can try to rebase your local work on top of the new changes. First of all, let's go into our submodule directory and check out a branch. diff --git a/book/08-customizing-git/sections/config.asc b/book/08-customizing-git/sections/config.asc index 7d5262b7a..16739692f 100644 --- a/book/08-customizing-git/sections/config.asc +++ b/book/08-customizing-git/sections/config.asc @@ -129,7 +129,7 @@ You can set it to `more` or to your favorite pager (by default, it's `less`), or $ git config --global core.pager '' ---- -If you run that, Git will page the entire output of all commands, no matter how long they are. +If you run that, Git will print the entire output of all commands, no matter how long they are. ===== `user.signingkey` 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/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 diff --git a/status.json b/status.json index 68b368c69..03a8d8307 100644 --- a/status.json +++ b/status.json @@ -85,11 +85,9 @@ }, "09-git-and-other-scms": { "1-git-and-other-scms.asc": 0, - "sections/client-bzr.asc": 0, "sections/client-hg.asc": 0, "sections/client-p4.asc": 0, "sections/client-svn.asc": 0, - "sections/import-bzr.asc": 0, "sections/import-custom.asc": 0, "sections/import-hg.asc": 0, "sections/import-p4.asc": 0,