pwd(print working directory): 현재 내가 작업하는 폴더(현재 내 위치)

위 사진은 Desktop에 있는 sparta 폴더 안에 있는 ELM 폴더 안에서 작업 중이라는 뜻
참고로 ~는 Home(홈)이라는 경로이며, 데스크탑보다 더 상위의 폴더라고 생각하면 된다.
ls(list): 내 폴더 안에 있는 폴더 & 파일 내역을 보여줌

현재 sparta 폴더 안에 ELM, album 등 총 5개의 폴더가 있는 것을 알 수 있다.
ls -a(list all): 숨겨진 파일(보통 .으로 시작함)도 모두 볼 수 있음
cd 폴더명(change directory): ls 명령어를 통해 확인된 폴더로 이동 가능
(ex. sparta 폴더 안에서 ELM 폴더로 가고 싶을 때는 cd ELM 입력)
- cd .. : 한단계 위 폴더로 이동(ELM 폴더에서 sparta 폴더로 돌아오고 싶을 때 ..을 입력함으로써 간편하게 돌아올 수 있다.)
- 폴더명/폴더명으로 한 번에 더 깊이 들어갈 수 있음
(ex. cd sparta/ELM -> Desktop에서 바로 ELM으로 이동, cd../.. -> ELM에서 Desktop으로 이동)
mkdir 폴더명(make directory): 현재 경로에서 폴더를 생성
touch 파일명: 현재 경로에서 파일을 생성
- 정확히는 파일의 날짜, 시간을 변경하는 명령어 -> 대신 해당 파일명의 파일이 존재하지 않을시 생성되는 것임
Git: 버전 관리 도구(형상 관리 도구) -> 소프트웨어의 변경사항을 체계적으로 추적하고 통제
- 하나의 폴더 내에서 코드의 변경점을 기록하기 위해 사용, 에러 발생시 과거의 코드 기록으로 쉽게 되돌아가기 가능(but 권장 x)
Github: 백업과 공유가 가능한 온라인 코드 저장소 -> 협업 도구!
git init: 코드 관리를 시작하는 명령어
-initialize(초기화하다, 초기 세팅하다)의 준말
- 프로젝트 시작 전 딱 한 번만 입력하면 됨(매번 입력x)
- 정확한 프로젝트 폴더(경로)에서 입력해야함
- 프로젝트 파일 안에 .git 폴더가 생기게 된다. (이때부터 코드 변경을 git에서 추적)
git add & commit
- git add 파일명: 저장하기 전 저장할 파일 지정
- git add . : 내 프로젝트의 모든 변경 사항을 한 번에 지정하는 명령어
- git commit -m "메세지": 커밋 메세지는 자세할수록 좋으며 실제로 저장하는 명령어
- git status: 저장 여부를 확인하는 명령어(코드가 변경됐지만 저장되지 않은 파일은 붉은색으로 표시)
git push: 로컬 저장소(내 디렉토리)에서 기록한 내역을 원격 저장소(github)으로 옮기는 것
git log: 저장 내역을 확인하는 명령어 -> 빠져나올 때는 q 누르기

1. 협력자(collaborator) 등록하기(레포지토리 주인만 가능)
- Github repository -> Settings -> Collaborators -> Add people
2. 코드 복사해오기(초대 받은 사람): git clone
2.1. repository에서 github 주소 복사
2.2. 코드를 작성할 폴더 생성
2.3. vscode에서 폴더 열기
2.4. git clone 깃헙주소 . 입력(.을 찍지 않으면 폴더도 같이옴 → cd를 통해 내가 직접 옮겨줘야함 → 따라서 먼저 폴더 생성 후 .을 통해 파일만 받아와 해당 폴더에 자동으로 들어가게끔)
3. 다른 사람이 변경한 코드 내 코드에도 가져오기: git pull
(clone은 전부 다 가져오기, pull은 수정된 부분만 가져오기)
3.1. 만약 코드 수정 후 push시에 에러가 뜨면 다른 인원이 새로운 변경 사항을 먼저 push 한 것
3.2. 따라서 pull을 통해 변경 내역을 먼저 받은 뒤 다시 push
-> 이 상황에서 아래와 같은 경고문이 뜬다면

git config pull.rebase false -> git pull origin main 입력
3.3. 아무것도 입력이 안되는 vim 에디터가 뜬다면
esc -> : -> wq -> enter 입력
4. 충돌 해결하기
같은 파일의 같은 위치에 코드가 변경되면 충돌이 나게 된다.

git pull 이후 다음과 같이 충돌된 상태를 보여주는데 1, 3, 5번 줄을 전부 삭제하고
1 aaaa
2 ddddddd
이렇게 남은 상태에서 원하는 코드로 수정 후 다시 push 하면 해결된다.