Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How does Git's concept of the Index improve or change your workflow?

Tags:

git

dvcs

workflow

I've been trying to use Git on my personal projects for almost a month now.

I have a pretty good understanding of the basic set of commands and while its user experience isn't awesome, I still find myself liking Git more than the other VCS's I've used in the past.

However, one concept that I still don't think I have "gotten" is the real purpose of the Index. I have this feeling I'm not taking advantage of some benefit it is intended to bestow.

What is the purpose of having a staging area? Coming from SVN land, I'm so used to treating my working copy as my staging area and my snapshots for my commits being taken from this.

So, my question is:

What does this extra level of indirection give you? How has the Index improved or changed your normal workflow? Can you provide any scenarios where having the Index has allowed you to do something that would have been troublesome to do without it?

like image 884
mmcdole Avatar asked Feb 19 '10 02:02

mmcdole


People also ask

What is Git index used for?

Git Index may be defined as the staging area between the workspace and the repository. The major use of Git Index is to set up and combine all changes together before you commit them to your local repository.

How does Git explain workflow?

A Git workflow is a recipe or recommendation for how to use Git to accomplish work in a consistent and productive manner. Git workflows encourage developers and DevOps teams to leverage Git effectively and consistently. Git offers a lot of flexibility in how users manage changes.

What is Git tracking index?

The Git working tree is comprised of files in their present state as they exist on the file system. The Git index -- to which files are staged -- is the second dimension. A commit of the staged files is the third dimension and the history of commits over time is the fourth.

What kind of workflow is used for large project in Git?

Centralized Git workflow A centralized Git workflow enables all team members to make changes directly to the main branch, with every change logged in a running history. A centralized workflow involves every contributor committing to the main branch without using any other branch.


1 Answers

There're definitely times when I start working on a feature or a bug fix, and then notice a quick typo or some other tiny (perhaps one-line) thing to fix. Instead of dropping all my work, or even using git stash, I can just commit that just that tiny change via the index; all my other work is still there, but now the commit is more specific: it only shows that small fix, instead of getting buried in dozens of other lines of changes. It's made for a much cleaner history, which makes it easy to search logs for changes since they're not mixed in with other commits.

In the event of (complicated, large) merge conflicts, it's also nice to be able to add each change I make to the index, so I know what conflicts I've fixed and which ones are left to deal with.

like image 89
mipadi Avatar answered Oct 31 '22 21:10

mipadi