Skip to content

installer: refine git pull behavior text to prevent misconfiguration#682

Open
jzbakh wants to merge 1 commit into
git-for-windows:mainfrom
jzbakh:text-refactor-git-pull
Open

installer: refine git pull behavior text to prevent misconfiguration#682
jzbakh wants to merge 1 commit into
git-for-windows:mainfrom
jzbakh:text-refactor-git-pull

Conversation

@jzbakh

@jzbakh jzbakh commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

Description

The previous phrasing of the git pull behavior defaults could lead to unintended configurations of the pull.rebase vs pull.ff parameters in the global .gitconfig. This PR refactors the text to introduce strict mechanical representations of the git state machine. The goal is to reduce ambiguity concerning commit graph resolution and align the UI text with current upstream defaults.

Technical Scope

  • Textual and UI Layout Update: This modification strictly targets the strings passed to the CreatePage and CreateRadioButton functions for the GP_GitPullMerge, GP_GitPullRebase, and GP_GitPullFFOnly options.
  • Added Label: A standard TLabel (LblInfo) was added at the bottom of the page to clarify how Git handles file conflicts.
  • Logic Intact: No underlying Pascal Script conditional logic, registry parsing (ReplayChoice), or silent install vectors were altered. The internal component IDs remain untouched.

Visual Regression Testing

Before After
git_pull_behavior git_pull_behavior_2

Signed-off-by: Jason Zbakh jzbakh@gmail.com

@jzbakh jzbakh closed this by deleting the head repository Apr 10, 2026
@jzbakh

jzbakh commented Apr 13, 2026

Copy link
Copy Markdown
Contributor Author

Reopened: head repository restored after accidental deletion.

@jzbakh jzbakh reopened this Apr 13, 2026
@dscho

dscho commented Jun 5, 2026

Copy link
Copy Markdown
Member

Hmm. I'm not sure that that wording is any clearer. Maybe a better idea would be to add a page on gitforwindows.org and then to add a footer to this installer page that links to that documentation? That way, there is a lot more space to work with.

@jzbakh

jzbakh commented Jun 5, 2026

Copy link
Copy Markdown
Contributor Author

Makes sense. I'll write a doc page for git-for-windows.github.io and ping you on a draft PR.
For this one:

  • Let me know if I should keep any part, otherwise I'll close it.
  • Or leave it open, and I'll repurpose it later as a minimal PR with just a footer note like "Need help choosing? See [link to docs]." once the docs page lands.

@dscho

dscho commented Jun 5, 2026

Copy link
Copy Markdown
Member
  • Or leave it open, and I'll repurpose it later as a minimal PR with just a footer note like "Need help choosing? See [link to docs]." once the docs page lands.

I like this option a lot!

This commit adds a footernote to the `GitPullBehaviorPage` directing users to the guide on the Git for Windows website regarding the default behavior of `git pull`.

Signed-off-by: Jason Zbakh <jzbakh@gmail.com>
@jzbakh jzbakh force-pushed the text-refactor-git-pull branch from f0da980 to 2318f57 Compare June 10, 2026 20:31
@jzbakh

jzbakh commented Jun 12, 2026

Copy link
Copy Markdown
Contributor Author

@dscho I'm currently working on the documentation page we discussed, and it got me thinking about the installer screen again.

I completely agree with your previous feedback: my first version with the diagrams and the note on conflicts was too dense and unclear.

However, I feel there are still a few issues with the current installer text:

  1. The option titles might imply that choosing "Rebase" prohibits fast-forwarding.
  2. The descriptions are very repetitive regarding the "fast-forward" concept. Option 1 explains it, and Option 2 (Rebase) tries to explain that it also fast-forwards when possible, but uses slightly confusing wording ("If there are no local commits to rebase, this is equivalent to a fast-forward").

Currently, the top of the screen displays two lines:

  • "Choose the default behavior of git pull"
  • "What should git pull do by default?" (which is quite repetitive).

This is exactly what initially prompted me to propose an improvement.

If we replace that second line with: "A pull always attempts a fast-forward first.", the context would become clearer, avoiding the need to explain fast-forwarding for each option.

We could then align the option titles with the internal variables (Merge, Rebase, FFOnly) and significantly simplify the descriptions:

  • Merge: Create a merge commit to combine branches. This preserves the exact history of parallel work.
  • Rebase: Rewrite your local commits on top of the remote branch, maintaining a single, linear timeline.
  • Fast-forward only: Safely abort if a fast-forward is not possible.

I just wanted to see if you agree with this approach. If so, I can use these exact headings and descriptions while writing the documentation page. What do you think?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants