Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialMaximiliane Quel
Courses Plus Student 55,489 Pointswhen to use -a flag
Hi guys,
the code challenge following this video asks us to commit changes twice the first time using the -a flag leads to an error the second time when it asks to commit changes made to the same file it insists on the flag.
Does that mean that you use the flag only when you commit changes one after the other to the same file or wouldn't it be a good idea to always commit all changes? I'm not sure I understand why it was wrong the first time and imperative the second ...
Thanks in advance for explaining.
3 Answers
Maximiliane Quel
Courses Plus Student 55,489 PointsI just found this and I guess it answers the question: why you don't need -a when committing staged files. for anyone that was wondering the same thing. however feel free to add any additional wisdom below ;0)
Tommy Morgan
Treehouse Guest TeacherSo, git has this notion called the "staging area." Think about it kind of like a suitcase - when you want to pack up to go on a trip, you put everything you want to take with you into the suitcase. When you want to make a commit to a git repository, you put all of the changes you want in that commit into the staging area. Make sense?
The -a
flag is a shortcut that basically means "put all of my changes into the staging area." If you don't use that flag, git will only try to commit stuff that you've already put into the staging area (which you do with the git add
command) - or if the staging area is empty, it will give you an error message.
So essentially, if you want to have careful control over which of your changes get added to a commit, add them individually to the staging area and then commit without the -a
flag. If, on the other hand, you want the commit to include ALL of your current changes, whether they're currently in the staging area or not, use the -a
flag.
Hope that helps.
Maximiliane Quel
Courses Plus Student 55,489 PointsThank you very much for taking the time to go over it in detail. It does make sense and I think the analogy is good. Getting further through the course also made it clearer.
I'm curious about one other thing if you don't mind. When it comes to workflow how exactly does that work. Do you code in your editor switching into the console when you make your submits etc or do you use an integrated solution such as offered with coda? I assume you do your other coding in a text editor? Just curious.
Tommy Morgan
Treehouse Guest TeacherI do all of my coding in vim, for which there's a nice plugin named Fugitive that integrates with git. That works really well for the basic stuff, like we cover in this course - sometimes I need to do more advanced things, though, or I just happen to have a console window open, and in those instances I'll use the command-line.
How you interact with git really just boils down to personal preference, so definitely try out different ways until you find something you really like. We just chose to teach the console commands for this course because it gives a really clear view of what's going on "behind the scenes" and it works relatively the same on every computer.
Maximiliane Quel
Courses Plus Student 55,489 PointsAgain thanks for a quick reply. I was just being nosy ;0). As you said there are many different solutions and everybody does have there preferences, so it's always interesting to see what other people use and like.
I think it's good that the course is done on the command line because we should be getting used to using it or at least have that option of getting familiar with it. Even though I have to admit that opening the terminal still makes me feel as nervous as if I was asked to diffuse a bomb. Thankfully you knew what you where talking about.
I will see you on another course I am sure.