Sunday, May 12, 2024

Git - Skip-Worktree

If you have files that you don't want to commit then . . . 

Assumiing you have TortoiseGit installed.

Windows File Explorer > Right Click on File > Show More options > Properties > Git Tab > Check Skip-Worktree > Apply > Ok > F5 to Refresh Displayed Files

The skip-worktree flag in Git is used to tell Git to exclude a specific file from the working directory whenever possible. 

This means:

Git will avoid writing the file to the working directory during operations like checkout, pull, or switch.

Git won't track changes made to the file, even if it's present in the working directory.

Git won't record the absence of the file in commits.

This flag is useful for configuration files or other files that should not be accidentally committed but might need to be edited locally sometimes.

Here's a table summarizing the key differences between skip-worktree and the similar flag assume-unchanged:

Use Cases for skip-worktree

Configuration Files: You might have environment-specific configuration files in your Git repository that shouldn't be committed but need to be modified locally for development.

Third-party Libraries: Large libraries included in your project can be marked with skip-worktree to avoid cluttering your working directory and improve performance.

Things to Consider

skip-worktree requires some manual work compared to assume-unchanged. If you need to make changes to the file, you'll have to manually add it back to the working directory before editing.

skip-worktree doesn't work with all Git commands. For instance, stashing won't work on files with this flag.

I recommend checking out the Git documentation on git-update-index for more details on the skip-worktree flag https://git-scm.com/docs/git-update-index. There are also resources online that discuss using skip-worktree for specific scenarios, like managing configuration files.

Google Gemini

Resources:

How To Fix Gitignore Not Working - Kinsta®

Git – Problem with “skip-worktree” and Pull - CodeProject

Ignoring Files with Git | Automation Panda

Warning: The skip-worktree setting applies only to the local repository. It is not applied globally! Each developer will need to run the skip-worktree command in their local repository.

Saturday, May 4, 2024

Git - Assume Unchanged

If you have files that you don't want to commit then . . . 

Assumiing you have TortoiseGit installed.

Windows File Explorer > Right Click on File > Show More options > Properties > Git Tab > Check Assume valid/unchanged > Apply > Ok > F5 to Refresh Displayed Files

Example

To undo Assume UnChanged . . . 

Windows File Explorer > Right Click on File > Show More options > Properties > Git Tab > UnCheck Assume valid/unchanged > Apply > Ok > F5 to Refresh Displayed Files

Resources: Ignoring Files with Git | Automation Panda

That's it !

Monday, March 25, 2024

Git - Overview

Git is a popular version control system (VCS) for software development projects. Unlike older systems, Git is a distributed system, which means every developer working on a project has a complete copy of the project history on their local machine. This allows for faster and more flexible collaboration.

Here's a quick rundown of what Git offers:

  • Tracks changes: Git keeps a record of all changes made to the code over time. This allows developers to see exactly what was modified, by whom, and when.
  • Collaboration: Multiple developers can work on the project simultaneously without stepping on each other's toes. Git's branching feature enables developers to isolate their changes and integrate them back into the main project seamlessly.
  • Non-linear development: With Git, developers can create branches to experiment with new features or bug fixes without affecting the main codebase. This allows for more flexible and efficient development workflows.

Here are some key concepts in Git:

  • Repository (repo): This is a central location where all the project files and their revision history are stored. It can be hosted on a platform like GitHub or be local to a team's machines.
  • Working directory: This is your local copy of the project files from the repository.
  • Staging area: This is a temporary holding area where you designate specific changes to be included in your next commit.
  • Commit: This is the act of capturing a snapshot of the project's state at a particular point in time, along with a descriptive message.

If you're new to Git, there are many resources available online to help you get started, including tutorials, documentation, and interactive courses. https://git-scm.com/docs/gittutorial