행복을 담는 블로그
[특강] Git & GitHub 특강 내용 정리📖 본문
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.html
만 git add
진행하였으므로, "1.html은 저장 되지 않았습니다."
(빨간색) 라고 뜬다.
▶️ 저장되지 않은 파일을 확인 할 수 있다!
-
✔️ 이후, 1.html
을 git 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 협업하기 + 충돌 해결하기
👩🏻💻 나홀로 작업 시,
- 초기 프로젝트 코드 작성
- Github Repository 생성
- 코드 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
'내일배움캠프' 카테고리의 다른 글
[TIL] 231226(화) 웹개발 종합반 5주차 / Github 시작하기 (0) | 2023.12.30 |
---|---|
[TIL] 231226(화) 웹개발 종합반 4주차 / Firebase (1) | 2023.12.30 |
[TIL] 231222(금) 웹개발 종합반 3주차 / JQuery 와 Fetch의 기초 (1) | 2023.12.30 |
[TIL] 231222(금) 웹개발 종합반 2주차 / Javascript 와 JQuery 기초 (1) | 2023.12.30 |
[TIL] 231221(목) 웹개발 종합반 1주차 / 내일배움캠프 개강📚 (0) | 2023.12.30 |