Examples of Configuring Git: 3 Practical Setups You’ll Actually Use

If you’ve just installed Git and you’re staring at a blank terminal wondering what to do next, you’re not alone. Most guides dump a wall of commands on you without showing real examples of configuring Git in ways that actually match day‑to‑day work. Let’s fix that. In this guide, we’ll walk through examples of configuring Git: 3 practical examples that cover the most common situations developers run into in 2024 and 2025. You’ll see how to set your identity and editor once and forget it, how to build a smart `.gitconfig` that saves you time every single day, and how to handle multiple identities (work vs. personal) without leaking your company email all over the internet. We’ll move step by step, with commands you can copy, paste, and adapt. By the end, you’ll have a set of real examples you can reuse on any machine and a Git setup that finally feels like it’s working for you—not the other way around.
Written by
Taylor
Published

Let’s start with the most common scenario: you’ve installed Git on a fresh laptop and you want a clean, predictable setup. When people look for examples of configuring Git: 3 practical examples usually this is the first one they need.

Set your global identity

Git needs to know who you are so it can stamp your commits correctly. This identity gets stored in your global config file (typically ~/.gitconfig).

Open your terminal and run:

git config --global user.name "Your Name"
git config --global user.email "you@example.com"

You can check what you just set with:

git config --global --list

You should see lines like:

user.name=Your Name
user.email=you@example.com

If you use GitHub, GitLab, or Bitbucket, use the same email you use for that service so your commits connect to your profile.

Pick a sensible default editor

By default, Git may open editors you don’t like (or don’t know how to exit). Setting your editor is one of the best examples of configuring Git to match your workflow.

For VS Code:

git config --global core.editor "code --wait"

For Nano (simple and friendly in the terminal):

git config --global core.editor "nano"

For Vim:

git config --global core.editor "vim"

Now whenever Git needs you to write a commit message or edit a rebase, it will open your chosen editor.

Configure line endings (Windows vs. macOS/Linux)

Line endings are still a real‑world headache in 2024, especially on teams with both Windows and macOS/Linux users. One of the best examples of configuring Git correctly is handling this before your repo fills with noisy diffs.

On Windows, this is usually what you want:

git config --global core.autocrlf true

On macOS or Linux, this is usually safer:

git config --global core.autocrlf input

This keeps your commits consistent even if your OS uses different newline characters under the hood.

If you want to go deeper into how Git configuration works in general, the official Pro Git book is still a solid reference: https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration

Add a few quality‑of‑life defaults

Here are some small but high‑impact settings. These are real examples of Git config that developers copy between machines all the time.

Colorized output so you can actually read diffs:

git config --global color.ui auto

A safer default for the main branch name when you create new repos:

git config --global init.defaultBranch main

Make git status more readable:

git config --global status.short false

At this point, you have a solid, global baseline. Let’s move to more interesting examples of configuring Git: 3 practical examples wouldn’t be complete without aliases and smarter diffs.


Example 2: Power‑user aliases and smarter diffs

Once your global identity is set, the next level is making Git faster to use. This is where examples of configuring Git really start to save you minutes every day.

Create time‑saving aliases

Aliases turn long commands into short, memorable shortcuts. They live in your global config, under the alias section.

Here are some of the best examples people use constantly:

git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.st status

Now you can type:

git co feature/login

instead of:

git checkout feature/login

You can also build more advanced aliases. For example, a pretty one‑line log that’s much easier to scan:

git config --global alias.lg "log --oneline --graph --decorate --all"

Run it with:

git lg

This is a classic example of configuring Git so that reading history becomes something you actually do, instead of avoiding it because the default output is overwhelming.

Improve your diff experience

Plain git diff is fine, but you can do better. Two real examples that help in almost every repo:

Side‑by‑side diffs by default:

git config --global alias.d "diff --word-diff=color"

Now:

git d

shows word‑level changes colored inline, which is great for documentation or config files.

You can also tell Git to use a specific diff tool (like meld or kdiff3) if you prefer a graphical view. For example:

git config --global diff.tool meld
git config --global difftool.prompt false

Then run:

git difftool

to open a GUI diff.

Safer pushes and pulls

Another example of smart configuration is making pushes safer by default. Many teams in 2024 use this setting to avoid accidentally overwriting remote history:

git config --global push.default simple

This limits git push to the current branch and its upstream, reducing “oops, I pushed the wrong branch” moments.

You can also turn on rebase by default when pulling, which keeps your history cleaner:

git config --global pull.rebase true

Now git pull will rebase your local commits on top of the remote branch instead of creating merge commits every time.

Store these examples in a portable .gitconfig

Once you’ve collected your favorite aliases and settings, you can copy your ~/.gitconfig between machines. Many developers in 2024–2025 keep their dotfiles (including Git configs) in a private repo so that a new laptop can be set up in minutes.

This whole section is one of the best examples of configuring Git: 3 practical examples should always include aliases, smarter diffs, and safer defaults, because these are the changes you feel every single day.


Example 3: Handling multiple identities (work vs. personal)

Here’s where things get interesting. In 2024 and 2025, it’s very common to:

  • Use one laptop for both work and personal projects
  • Have different emails for company repos vs. open‑source
  • Need different signing keys or SSH keys per account

This is a real example of configuring Git that trips people up: your work email suddenly appears on your public GitHub profile, or your company rejects commits because the email doesn’t match their policy.

Let’s fix that with directory‑based configuration.

Step 1: Keep a clean global default

Set your personal identity globally. This is what you’ll use for open‑source and side projects:

git config --global user.name "Your Personal Name"
git config --global user.email "you.personal@example.com"

This email should match your personal GitHub (or similar) account.

Step 2: Create a separate config for work

Now create a separate config file for your work identity, for example in your home directory:

nano ~/.gitconfig-work

Add something like this:

[user]
    name = Your Work Name
    email = you@yourcompany.com

Save and close the file.

Step 3: Tell Git to use work settings in work folders

Git supports an includeIf directive, which is one of the best examples of configuring Git smartly in recent years. It lets you say “if I’m in this path, include that config file.”

Open your main ~/.gitconfig and add:

[includeIf "gitdir:~/work/"]
    path = ~/.gitconfig-work

Now, any repo inside ~/work/ will automatically use your work name and email, while everything else uses your personal identity.

This is a powerful example of using Git’s configuration system to avoid embarrassing mistakes and keep your professional and personal lives clearly separated.

Step 4: Optional – configure GPG signing per identity

If your company requires signed commits, or you simply like the added integrity, you can configure GPG signing in the work config only.

In ~/.gitconfig-work:

[user]
    name = Your Work Name
    email = you@yourcompany.com
    signingkey = YOUR_WORK_GPG_KEY_ID
[commit]
    gpgsign = true

Now only work commits are signed, using your work key.

If you want a deeper background on public key crypto and why signing matters, the National Institute of Standards and Technology (NIST) maintains approachable material on cryptography standards: https://csrc.nist.gov

Step 5: Configure different SSH keys per host (optional but common)

While this lives in ~/.ssh/config rather than Git itself, it often goes hand‑in‑hand with these examples of configuring Git.

For example:

Host github.com-personal
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_personal

Host github.com-work
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_work

Then you can set your remotes like:

git remote set-url origin git@github.com-work:your-company/repo.git

This keeps your SSH keys and identities cleanly separated.


More real‑world examples of configuring Git in 2024–2025

We’ve covered the main examples of configuring Git: 3 practical examples, but there are a few more patterns that show up repeatedly on modern teams.

Example: Per‑repository hooks with shared scripts

Say your team wants to:

  • Run tests before every commit
  • Enforce formatting (Prettier, Black, gofmt, etc.)

Instead of every developer reinventing the wheel, you can keep shared hook scripts in the repo and point Git to them.

In your repo:

mkdir -p .githooks

Create .githooks/pre-commit and make it executable:

chmod +x .githooks/pre-commit

Then tell Git to use that directory for hooks:

git config core.hooksPath .githooks

Now everyone who clones the repo gets the same behavior automatically. This is a concrete example of configuring Git at the repository level instead of relying only on global settings.

Example: Ignoring OS and editor noise

Another simple but impactful configuration example: global ignores for files you never want in any repo (think .DS_Store on macOS or editor swap files).

Create a global ignore file:

echo ".DS_Store" >> ~/.gitignore_global
echo "*.swp" >> ~/.gitignore_global

Tell Git to use it:

git config --global core.excludesfile ~/.gitignore_global

This prevents accidental commits of OS junk across all your projects.

GitHub maintains a popular collection of .gitignore templates at https://github.com/github/gitignore which is a good place to grab language‑specific examples.

Example: Hardening Git for public networks

If you’re working on public Wi‑Fi or sensitive code, you might:

  • Prefer SSH over HTTPS for remotes
  • Want stronger defaults for verifying remotes

The Git project has security notes and recommendations at https://git-scm.com/docs/git-security which are worth skimming. While not a single command you run, this is still one of the best examples of thinking about Git configuration as part of your broader security posture.


FAQ: Short answers based on real examples

What are some common examples of configuring Git for beginners?

Some of the most common examples include setting your global name and email, choosing a default editor (core.editor), enabling color output (color.ui auto), setting a default branch name (init.defaultBranch main), and creating simple aliases like co for checkout and st for status.

Can you give an example of using includeIf in Git config?

Yes. A practical example of includeIf is separating work and personal identities:

[includeIf "gitdir:~/work/"]
    path = ~/.gitconfig-work

Any repo under ~/work/ will then use the settings in ~/.gitconfig-work, such as a different user.email.

How do I see all my current Git configuration values?

Run:

git config --list

To see only global settings, add --global. To see system‑wide ones, use --system (you may need elevated permissions). This is a quick way to review which of the examples of configuring Git you’ve already applied.

Is it better to configure Git globally or per repository?

Use global config for preferences that apply everywhere (identity, editor, aliases) and repository config for project‑specific rules (hooks, formatting tools, special remotes). The best examples of configuring Git usually mix both: a strong global baseline plus a few repo‑level tweaks.

Where can I learn more about Git configuration?

The official Git documentation is still the most authoritative source: https://git-scm.com/docs/git-config. For a more tutorial‑style explanation, the Pro Git book (linked earlier) is free online and regularly updated.


If you copy, adapt, and save these examples of configuring Git: 3 practical examples (plus the extras) into your own .gitconfig, you’ll end up with a setup that feels tailored, fast, and predictable—without needing to memorize every obscure Git command.

Explore More Installation Guides

Discover more examples and insights in this category.

View All Installation Guides