⌛ Git Bash 설치하기
Git - Downloads
Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific exp
git-scm.com
▶️ Git Bash 실행하기
Git Bash 혹은 Visual Studio Code의 Git Bash 터미널을 이용해 실습합니다.
Mac : 터미널
Window : Git Bash
- Git Bash


- Visual Studio Code의 Git Bash 터미널



Visual Studio Code가 없을 때,
- 명령 프롬프트
- 혹은 작업 표시줄의 검색 칸에 terminal 검색 >


💻 필수 리눅스 명령어
※ Git 명령어 아님
📍 pwd (Print Working Directory)
현재 내가 작업하는 폴더 보기
cf. ~는 Home(홈)이라는 경로 : 우리가 보는 데스크탑보다 더 상위 폴더

📍 ls(List)
내 폴더 안에 있는 폴더
& 파일 내역을 보여줌

📍 ls -a(List All)
숨겨진 파일(보통 .으로 시작함)도 모두 볼 수 있음

📍 cd 폴더명(Change Directory)
"폴더명"의 폴더를 더블클릭해서 들어간 것과 같은 효과
cd .. : 한 단계 위의 상위 폴더로 이동
cd 폴더명/폴더명 : 한번에 더 깊이 이동할 수 있음


- cd .. : 한 단계 위의 상위 폴더로 이동

- cd 폴더명/폴더명 : 한번에 더 깊이 들어갈 수 있음

📍 mkdir 폴더명 (Make Directory)
현재 경로에서 폴더를 생성

📍 touch 파일명
현재 경로에서 파일을 생성
cf. touch 명령어는 원래 파일의 생성과 파일의 날짜, 시간을 변경하는 명령어

💬 Git & Github의 개념

Git이란?
버전 관리 도구(형상 관리 도구)
코드 변경점 기록을 위해 사용
🧑💼 (면접용) 소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것!

Github란?
온라인 백업, 공유, 협업이 가능한 온라인 코드 저장소
🔖 Git 필수 명령어
📍 git init
init : initailize(초기화하다, 초기 세팅을 하다)의 준말
여러번 입력해도 문제가 되는 것은 아니지만, 프로젝트 시작 전 딱 한번만 입력하면 됨.
정확한 프로젝트 폴더(경로)에서 입력해야 함.
☠️ 잘못 입력할 시, 데스크탑 전체 파일, 폴더가 다 기록될 수 있음!
실습하기
1. index.html 파일을 하나 만들고
간단한 텍스트 입력 후, 저장(저장 필수)
- 저장
- Mac : cmd + s
- Window : Ctrl + s



2. 현재 경로 확인(필수!)

3. git init 명령어 입력
Initialized empty Git repository in ~~~이라고 나오면 성공!

4. .git 이라는 폴더(숨겨진 폴더)가 생성됨.
ls -a 명령어로 확인 가능
.git 폴더에서 코드 변경점을 계속 추적 & 기록 함.
(* 이 폴더가 정확한 프로젝트 경로에 있어야 함.)

📍 git add & commit
코드를 저장하는 명령어
1. git add 파일명
저장하기 전, 저장할 파일 지정

2. git commit -m "메세지 작성"
실제로 저장하는 명령어

Please tell me who you are. 이라는 에러 발생

에러의 원인 : 계정 설정을 하지 않았기 때문
Please tell me who you are. 에러 해결 방법
github에 가입이 되어 있어야 함.
GitHub: Let’s build from here
GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and fea...
github.com
1. git config --global user.name 유저네임

2. git config --global user.email 유저이메일

이제 다시 commit을 해 보면,
아래와 같이 성공적으로 commit이 되는 것을 확인할 수 있다.

📍 git log
저장 내역을 확인하는 명령어
커밋 메세지로 코드 변경점 추측 가능
키보드 q : 빠져나오기


📍 git diff
코드 변경 확인
📍 git reset
과거로 돌아가기
💭 왜 저장 명령어는 2개일까?
1. 파일(hello.html) 하나 더 만들고 코드 작성 & 저장







📍 git status
파일의 변경(modified) 혹은 add(지정) 등 변경 상태를 확인하는 명령어
코드 변경은 있지만 저장하지 않은 파일은 붉은색으로 표시됨

지정할(git add) 파일이 많을 때,
📍 git add . & git commit -m "메세지 작성"
내 프로젝트의 변경사항을 한 번에 지정
점(.)은 현재 나의 경로의 모든 변경된 사항을 말함.


🗃️ Github로 코드 백업하기
1. 온라인 저장소(Github Repository) 만들기
1-1. Github 홈페이지 접속
GitHub: Let’s build from here
GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and fea...
github.com
1-2. 회원가입 및 로그인 진행
1-3. New 버튼 클릭

1-4. 레포지토리 이름 입력 & Create Repository 버튼 클릭


2. 내 코드를 Github 레포지토리로 업로드
2-1. 업로드할 프로젝트 폴더를 Visual Studio Code로 열기

2-2. 붉은 박스의 명령어들을 복사

2-3. Visual Studio Code의 bash 터미널에 붙여넣기

2-4. Github 레포지토리에 파일들이 잘 업로드되었는지 확인하기

위에서 '복사+붙여넣기'한 3줄의 명령어는 무슨 의미일까?
git push <github 주소> : 일일이 주소를 입력하기 귀찮음!😩
1. git remote add origin <github 주소>
<github 주소>를 origin이라는 이름으로 저장
기본 branch : master (노예 제도와 관련하여 사용 X)
2. git branch -M main
현재 브렌치명(master)을 main으로 바꾼다.
git push origin main : 일일이 주소를 입력하기 귀찮음!😩
3. git push -u origin main
git push만 입력해도 git push origin main을 실행하도록 설정
3. 추가로 수정된 코드 Github에 반영하기 - git push
3-1. 코드 수정하기
3-2. 코드 저장 명령어 실행
git add . & git commit -m "메시지"
3-3. git push origin 브랜치명
Github 협업 기초 & 충돌 해결방법
1. 협력자(Collaborator) 등록하기
레포지토리를 만든 사람이 해야 함.
1-1. Github레포지토리 > Settings > Collaborators > Add people 클릭




저의 경우 이 다음에 Confirm access 창이 떴는데
버튼 클릭해서 인증하면 되는 것 같아요.




1-2. 협업 초대 수락하기
레포지토리를 만든 사람이 아닌 협업자가 해야 함.

2. Git clone
코드 복사해오기
2-1. Github의 레포지토리에서 Github 주소를 복사합니다.

2-2. 코드를 작성할 폴더 만들기

2-3. Visual Studio Code에서 해당 폴더 열기


2-4. git clone <Github 주소> . 명령어 입력하기
마지막에 점(.)빼먹지 말기! (경로가 달라집니다.)
폴더를 이미 만들었다면, 점(.) 붙이기 >> git clone <Github 주소> .
폴더가 없다면, 점(.) 없애기 >> git clone <Github 주소>



다른 팀원도 코드 변경하고 Github에 올리기
1) 코드 수정
2) 코드 저장 명령어 수행
git add .
git commit -m "메시지"
3) git push origin 브랜치명
3. git pull
다른 팀원이 변경한 코드 내 코드에 가져오는 명령어
3-1. 코드 수정 후, git push origin 브랜치명

Error1. git pull을 먼저 하라는 에러가 발생한다면?
git pull origin 브랜치명
6. 에러발생!*
다른 사람이 이미 git push하였을 때, 내가 pull 없이 git push 하면 발생하는 에러 >> pull을 하자!
hint : use 'git pull' before pushing again

Error2. git pull시, 아래와 같은 에러가 뜬다면?
hint : git config pull.rebase false # merge
hint : git config pull.rebase true # rebase
hint : git config pull.ff only # fast-forward only
1. git config pull.rebase false 명령어 입력 후,
2. git pull origin main 명령어 입력


Error3. 터미널에 아무것도 입력이 안되는 vim에디터가 뜬다면?
1. esc키
2. :
3. wq
4. enter

4. 충돌(Confilct) 해결하기
git pull로 가져왔는데 코드가 이상해졌어요.😨

4-1. 충돌 발생한 파일 확인해보기
충돌 발생 이유 : 같은 파일, 같은 위치의 코드를 변경했기 때문

강르탄 : index.html 2번째 줄 코드 변경
이르탄 : index.html 2번째 줄 코드 변경


2. 충돌발생**
같은 파일, 같은 위치의 코드를 변경해서 발생하는 충돌
4-2. 코드 수정하기
1. <<<<<<<< HEAD 삭제
2. ======= 삭제
3. >>>>>>> 4182… 삭제
4. 원하는 코드로 수정
5. 충돌 해결 후, 다시 git push
