Open anitabe404 opened 3 years ago
Hey Anita, I kinda' had one of those days too. lol M
Hi @anitabe404 ! š There have definitely been times working with git that I've totally just given up, stepped away from my computer, and laid down in defeat on the carpet in my room. You are not alone!
If it makes you feel better, there are professionals --literally, people paid to write code for a living-- who have royally screwed up while working with git. That Jenkins example was an extreme fiasco but it happens all the time in orgs and groups! So take solace-- this is the big leagues! Properly knowing git is one of the true badges of honor in software dev land. š
Also: I'll mention-- proper knowledge of git is honestly one of those things that comes with experience and it also all depends on your git workflow. For example, while I've rebased before, for the workflow I'm using right now (since I've just been developing my own projects), I just squash
whenever I merge a PR back into my main
. Thus, I definitely wouldn't feel comfortable rebasing in another project right now without brushing up on my knowledge first. We know what we use. And if we don't use something, we quickly forget it! (Or that knowledge becomes rusty!)
There's honestly so much going on these days, it can get very tough keeping it all in your head. There's no shame in Googling a cheat sheet when you need to. In fact, in many of my pet projects, I often keep commands that are important but that I use infrequently in my README.md
file. Eg. Listing/setting env vars on Windows Powershell, git commands, etc.
To your other question btw, here's how I think of origin
:
First off, there are two main location concepts
(that's not an official thing, that's just how I think of them) in git: Your remote
and your branch
.
A remote
is the uri
of a repo. Eg:
Then your branch
is a specific version of your code in that remote. Eg:
And then if you navigate over to the actual web url, you can then see how all of these concepts relate to each other:
Finally, one last piece of advice I can give (and this is honestly something I still struggle with at times) is timeboxing your side-quests. Believe me, as you learn more, the "side-quests" never end. Seriously, the more you know, actually, the more you get curious about! Or at least, that's definitely a challenge I personally have. For example, just yesterday, I saw a weird linter
message that I wasn't expecting. I probably spent at least twenty minutes googling and updating npm dependencies to try to get rid of it. Anyway, I'll spare you the details (I didn't fix it, in the end š¤) but the point is that this side-quest
wasn't critical path
so I ultimately had to just shelve it and move on to the actual task at hand -- getting our GitHub Dashboard
up and running!
Anyway, in summary: It's good to be curious. But I think it's also terrific that you're making an official schedule of concrete goals and dates that you want to hit! š
Motivation/Problem Statement šā:
My motivation is simple. Finish The Odin Project Fundamentals course. However, CSS and Git will not let me be great. šš
Today's Goal/Solution š„ :
Today I set out to continue working on my Google homepage replica, but I ran into some issues with git merges. So getting familiar with git quickly became my focus.
Result ššš:
My grandmother used to say, "when it rains it pours" and "if it's not one thing, it's another." This has definitely been the case with working on this Google Homepage. I set out to work on another portion of my code (which I had previously created a branch for) and everything went haywire when I did a git pull. I have no idea why things aren't aligned or what the error messages mean or how to fix them. š So I will now be making yet another pit stop to learn more about git. I'm going on so many learning tangents it's scary.
In other news, my Ruby solution was approved by the mentor š, so that has a nice bow on it. I've completed 90/138 exercises on the CSS Tutorial.
Observations & Next Steps šš£:
Today I discovered that my understanding of git is weak and that if I want to successfully use it to capture my projects, I need to spend some time learning about some of the more common commands and workflows, especially git merge and git rebase. Honestly, I think I just need to read through the basics. (What even is origin? When do I need to pull, push, lay down in defeat? etc.)
I also spent a good portion of today looking at my goals and trying to come up with a plan and schedule for the things that I want to accomplish. I'm realizing that I got out of alignment with what I had originally tried to do (I did not expect the Google project to take so long and require so many detours). I now need to reprioritize and reschedule my work. There may be an opportunity for me to get some experience with a real Data Analysis project, but in order to do so, I need to ramp up my skills. This takes me back to the Google Data Analytics course and the Python course I've all but abandoned while fighting with HTML tags and CSS Selectors.
References š:
So far this YouTube tutorial on git merge vs git rebase has been helpful. I need to open the CLI and follow along though to really make sure that I understand it.
Extra/Fun (Optional) ššš„³:
This is related to coding, but I'm putting it here anyway. Google I/O is next week. Not sure if you guys knew, but it's free and they look like they'll be having a lot of good demos and presentations.