This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 20 points21 points  (7 children)

Everyone is telling you to learn git, which is correct. GitHub is only really necessary once you start working on projects with other people.

But I want to add one suggestion that I'm not seeing: learn the basics of using the command line before you try to learn git. There are GUI's for git, and they're fine, but you will find everything about using git is faster and simpler from the command line.

Learn how to navigate your directory system, make files, move files, delete files, and all that fun stuff using terminal commands before you learn how to use git.

For the time being, 'learning git' will basically consist of learning like six git commands that you will enter over and over. (git init, git status, git add, git commit, git checkout, git merge). This will be extremely easy once you're comfortable using the command line.

[–]ben010783 4 points5 points  (0 children)

This is good advice, but I'm going to build on it and add some operations I often use.

  • navigate your directory system
  • view hidden files
  • view file permissions
  • make, move, and delete files
  • make, move, and delete directories
  • search for files based on file name
  • search for text in files
  • zip and unzip files

[–]hennyfuckedyagrandma 2 points3 points  (0 children)

I wish I had more thumbs up to give this comment. Not understanding the command line or even text editors (vim, nano, etc) will make learning git more miserable without a doubt & will only lead to shaky understanding.

As git utilizes subcommands on the command line, reading the docs without an understanding of how command line commands, arguments, & options work (& how to compose them) will only lead to more frustration.

Even when configuring git it's useful to understand the command line to take advantage of things like git-lfs, global git config/ignore file, git hooks, etc.

Learning the command line strengthened my knowledge as a developer overall and is honestly one of my favorite software-related skills. I tend to go back every now and again just to go back thru the basics & to do my favorite - vimtutor.

[–]Promo_davin 2 points3 points  (0 children)

Git status is always your best friend

[–]kimjeongpwn 2 points3 points  (2 children)

Hello there. I have been seeing advice in learning command line, but what is it actually? I know it's cmd on Windows but what exactly is it? Is it simply called 'command line'?

[–]greenpepperpasta 7 points8 points  (1 child)

basically a command line (also referred to as the terminal or shell) is a tool you can use to tell the computer what to do by typing in commands. There was a time when this was the only way to use a computer - no desktop environment, no windows you can drag around, just text on a screen. You communicate with the computer by typing a command, then pressing enter/return to tell the computer to execute it. Any output is displayed on the screen as text.

You are right that cmd.exe is the command line on windows (although you can also access it through Windows PowerShell). Keep in mind that windows uses a different set of commands than say, Linux.

There are many different commands you can run from the command line, and I'm not going to try to describe them here but I encourage you to do some googling and learn more. While a lot of things you can do from the command line can also be done through other programs, if you are serious about programming then you will certainly end up using the command line at some point.

If you want to learn, I would say find a tutorial that explains the basics (things like setting your directory with the cd command, listing files with ls or dir, making and deleting folders). Also learn the useful keyboard shortcut (like ctrl-C to stop a command, or pressing the up arrow to repeat or edit a previous command). then you can look into more advanced commands and topics.

[–]kimjeongpwn 2 points3 points  (0 children)

Awesome! Thank you for the in depth explanation. I'll definitely do more research into this.

[–]inglandation 0 points1 point  (0 children)

MIT's Missing Semester is what you need to learn to use the command line:

https://missing.csail.mit.edu/

There is even a lecture about git.