행복을 담는 블로그

[특강] Git & GitHub 특강 내용 정리📖 본문

내일배움캠프

[특강] Git & GitHub 특강 내용 정리📖

hyun0zin 2023. 12. 30. 23:36

Git & GitHub 특강 내용 정리📚

 

1. 필수 리눅스 명령어

: git 명령어 아님

✅ Terminal 열기
VScode > terminal > new terminal
: 아랫쪽 terminal 나온거 확인 가능

🧐 기존에 진행 중인 프로젝트 파일이 있다면?

File > New Window 를 이용하여 새 창 열어서 시작하기!

1️⃣ pwd(print working directory)

: 내가 작업하고 있는 폴더를 보여줘! / 현재 위치 알려줘!

~ : root(루트)라는 경로 = 최상위 경로
우리가 보는 Desktop 보다 더 상위의 폴더

2️⃣ ls(list)

: 내 폴더 안에 있는 폴더 & 파일을 볼 수 있음

3️⃣ ls -a(list all)

: 숨겨진 파일(보통 .으로 시작함)도 모두 볼 수 있음
일반 user들은 몰라도 되는 설정 파일 등등

▶️ git에서 이 명령어를 한 번 쳐볼 것.!!

4️⃣ cd 폴더명 (change directory)

: ls 명령어에서 확인된 폴더로 이동 가능 / 데스크탑에서 폴더를 더블 클릭 하는 것도 동일

1) cd .. : 한 단계 위의 폴더로 간다.(cd 와 .. 사이에 띄워쓰기 필수!)
2) 폴더명/폴더명 : 더 깊이 폴더를 찾아 들어갈 수 있음


▶️ sparta 위치에 있다가 cd album 을 실행하니 album 위치로 이동


▶️ album > sparta > Desktop > ~ (root) > Users 순으로 상위폴더로 이동

5️⃣ mkdir 폴더명(make directory)

: 현재 경로에서 폴더를 만드는 명령어


▶️ git-test 라는 폴더 안에 new 폴더 만들기

6️⃣ touch 파일명

: 파일을 만드는 명령어
*참고 : 정확히는 파일의 생성과 파일의 날짜, 시간을 변경하는 명령어

▶️ git-test 폴더 안에 test, test1, test2 폴더파일이름뭘로하지 파일 생성

 

2. Git & GitHub 개념

1) Git

🧐 일상생활에서의 git
/// 보고서 word 파일 사용 시, 최종, 찐최종 등등 파일을 여러개로 만든다. → 용량 ⬆️ , 정리 X, 어디를 어떻게 변경했는지 확인 불가

git을 사용하면 편하다‼️
: 하나의 폴더 내에서 복사하지 않아도 코드의 변경점을 기록하기 위해 git 사용

  • ex) 프로젝트 초기 세팅 > 회원가입 기능 개발 > 로그인 기능 개발 > 로그아웃 기능 개발 (순서대로 개발)
    -0
    🚨 에러 발생 시, rollback 하기가 쉽다. = 과거의 코드 기록으로 쉽게 돌아가기 쉽다.

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

2) GitHub

🙄 일상생활에서의 github
/// 과제를 하다가 컴퓨터가 고장난다면..? 저장을 안 했는데..? 다시 처음부터 만들어야함… > 드라이브 같은 곳에 백업을 해놓기도 함!! + 온라인 백업 (공유가 가능)

📌 Github 이란?
백업공유가 가능한 온라인 코드 저장소 + 협업 가능 (협업 도구라고 말한다.)

 

3. Git 필수 명령어

1️⃣ git init

: 코드 관리를 시작하는 명령어

  • initialize(초기화하다, 초기 세팅하다)의 준말
  • 프로젝트 시작 전 딱 한 번만 입력하면 됨.

📌📌📌 정확한 프로젝트 폴더(경로)에서 입력해야 함 (pwd로 현위치 꼭 확인 할 것.)

▶️ 이렇게 뜨면 git init 성공

🚩 .git이라는 숨겨진 폴더가 생성 된다.
→ 이 폴더 안에서 코드 변경점을 계속 추적 & 기록한다!

 

2️⃣ git add & commit

: 코드를 저장하는 명령어

  • git add 파일명
    : 저장하기 전 저장할 파일 지정
  • 내 프로젝트의 변경사항을 한 번에 지정하는 법
  • git commit -m “메세지 작성”
    : 실제로 코드를 저장하는 명령어
  • 📌 구체적으로 메세지 작성하라 ('commit message' 작성법 확인해보기)

순서대로 add 먼저 + 이후 commit 입력

    • git status : git에 저장이 되었는지, 안되었는지 확인 가능 / 저장 여부 확인하는 명령어 / 변경 상태 확인

✔️ 처음에 2.htmlgit add 진행하였으므로, "1.html은 저장 되지 않았습니다."(빨간색) 라고 뜬다.
▶️ 저장되지 않은 파일을 확인 할 수 있다!
-
✔️ 이후, 1.htmlgit add 해주면, "1.html이 잘 저장 되었습니다." (초록색) 라고 뜬다.

  •  
  • git add(띄우고).(점)
    : 파일이 많아질 경우, 저장 안 된 놈들 싹 다 한 방에 저장하기

    ▶️ 이렇게 1.html은 저장 되어있고, 2.html은 저장 되지 않은 상태일 때,

    ▶️ git add .을 할 경우, 모두 저장됨을 확인 할 수 있다.

M : modified : 파일이 수정되고 있다.
U : untracked : 파일이 아직 추적되지 않고 있다.

 

3️⃣ git log

: 저장 내역을 확인하는 명령어 / 작성했던 메세지 모두 확인 가능
코드 변경점을 추측 가능

git diff : 코드 변경 확인 (commit id 이용하여 변경 가능)
git reset : 과거로 돌아가기 (기존의 것 날라갈 수 있으므로 조심⚠️)

** commit id : 숫자 + 문자 섞인 것 (노란색)

🙄 (END)가 떠서 더이상 추가로 입력이 되지 않을 때?
: 키보드 q로 빠져나오기

👀 Working directory / Staging area / Repository에 대해서 찾아 보기

 

4. Github으로 코드 백업하기

: github repository (온라인 저장소)

✅ 처음 업로드 진행 시,
New > Create Repository > 아래 코드 복사 > Terminal에 붙여넣으면 github에 자동으로 업로드

🧐 첫 업로드 시 3개의 명령어 의미
git remote add origin <github 주소>
: 주소 대신에 origin을 사용하자.
git branch -M main
: master 라는 branch 이름을 main으로 변경
git push -u origin main
git push 만 입력해도 git push origin main 해 줘!

github에 자동 업로드 된 것을 볼 수 있다.

git push
: 추가로 수정된 코드 github에 반영하기

① 코드 수정
② 코드 저장 명령어 실행 ; add & commit
git push origin 브랜치명 (일단은 main)

5. Github 협업하기 + 충돌 해결하기

👩🏻‍💻 나홀로 작업 시,

  1. 초기 프로젝트 코드 작성
  2. Github Repository 생성
  3. 코드 github에 올리기

👥 근데 이제 협업을 하려면?
🔽 🔽 🔽 🔽 🔽 🔽 🔽 🔽

1️⃣ 협력자(collaborator) 등록하기

: Repository 만든 사람이 팀원들의 username 혹은 email 추가

2️⃣ git clone : 코드 복사해오기

: git clone <github 주소>(띄우고). 명령어를 입력

🔥 맨 뒤에 .(점) 빼먹지 말자!🔥


▶️ 협력자가 보내준 github의 주소 복사


▶️ git clone <github 주소> . 해주면 코드가 들어온 것을 볼 수 있다.

  • git init 안해도 됨. (이미 처음 코드 짠 사람이 초기 세팅을 했기 때문.)
  • 코드가 아무것도 없을 때, 그대로 가져올 때 사용

 

3️⃣ git pull : 다른 사람이 변경한 코드를 내 코드에도 가져오기

: 다른 사람이 먼저 코드 수정을 했다면, 이후 내가 git push를 하면 다른 사람 코드가 덮어씌워져서 사라짐..!

BUT!!
: 중복으로 같은 자리에 서로 다른 코드가 올라가 있을 경우, git push 어차피 안 됨.
이때는 git pull을 통해서 다른 사람이 수정한 코드를 먼저 가지고 온 뒤에 git push해서 내꺼를 업로드 함.
"git push 하지말고 git pull 하세요" 라고 뜬다.
▶️ 수정된 코드를 가져옴.

4️⃣ 충돌(conflict) 해결하기

🤯 git pull로 가져왔는데 파일이 이상하다?!?
: 같은 파일의 같은 위치에서 코드가 변경(수정)되었기 때문!

  • ex) A 와 B가 같은 index.html 2번째 줄에서 코드를 변경하면, 내가 B의 코드를 git pull 땡겨버리면 2번째 줄에서 충돌이 발생함!!!!!!


▶️ "index.html 파일에서 충돌이 발생함 → 충돌 해결하고 다시 commit 하세요"

▶️ 코드가 아닌 것들이 같이 뜬다.

: 코드가 아닌 다른 것(2,4줄 코드 제외)은 다 삭제 + 이후 팀원들과 상의 후 어떤 코드를 쓸 것인지 결정하자!

5️⃣ 충돌(conflict) 해결 후 다시 git push 하기

 

✅ git pull 시 아래와 같은 경고문이 뜬다면?


▶️ 첫 번째 줄을 terminal에 입력해 주자! > 이후에 git pull origin main 명령어 입력

✅ 터미널에 아무것도 입력이 안 되는 vim 에디터가 뜬다면?


① 키보드 esc
② 키보드 :
③ 키보드 wq
④ 키보드 enter