Git & Github 특강

필수 리눅스 명령어
pwd
현재 작업중인 디렉토리 경로 표시
~는 home 경로이며, 바탕화면을 의미하는 desktop 폴더의 상위 경로
ls
디렉토리 내의 파일 및 다른 디렉토리 목록 표시
ls -a
숨겨진 파일(보통 .으로 시작함)도 모두 볼 수 있음
cd 폴더명
다른 디렉토리로 이동
..
한단계 위의 폴더라는 뜻 (뒤로가기)
.
현재 경로
mkdir 폴더명
현재 경로에서 새 디렉토리 생성
ll
적었을 때 앞이 d로 시작되면 폴더인 것
touch 파일명
현재 경로에서 새 파일 생성 또는 기존 파일의 타임스탬프 갱신
Git, Github 개념
하나의 폴더 내에서 코드의 변경점을 기록하기 위해 git을 사용
에러발생 시 과거의 코드 기록으로 쉽게 되돌아가기 가능
Git이란?
코드 변경점 기록, 버전 관리 도구(형상 관리 도구)
Github 란?
git 리포지토리를 호스팅해주는 웹 기반 서비스로 코드의 백업 및 협업에 유용
Git과 Github 의 차이점
git은 로컬에서 코드의 버전을 관리하는 도구이고,
github는 웹 기반 서비스로 코드를 호스팅하고 협업을 돕는 도구이다.
Git의 작동 원리
Git은 코드의 변경점을 추적하여 이를 버전으로 관리하는 도구이다.
사용자가 코드를 수정하고 commit을 실행하면, 그 시점의 코드 상태를 스냅샷으로 저장한다.
이렇게 각 변경점마다 스냅샷을 찍어 버전을 만들어 나간다.
Branch를 통해 여러 버전을 동시에 관리하고, Merge로 다른 버전과 합칠 수도 있다.
Git은 코드의 변경 이력을 체계적으로 관리해준다.
스냅샷으로 저장한다는 것은?
Git이 파일의 변경 내용을 직접 추적하지 않고, 특정 시점의 파일 전체를 스냅샷으로 저장한다는 의미이다. 이를 통해 Git은 빠르게 작동하고 효율적인 버전 관리를 할 수 있다.
git 필수 명령어
git init
코드 관리를 시작하는 명령어
initialize (초기화하다, 초기 세팅하다)의 준말
프로젝트 시작 전 딱 한번만 입력하면 됨
정확한 프로젝트 폴더(경로)에서 실행해야 함. 잘못하면 데스크탑 전체 파일, 폴더가 다 기록됨.
pwd로 반드시 경로 확인할 것
Initialized empty Git repository in 가 나오면 성공 !

.git이 있으면 해당 폴더에서는 git init 할 필요가 없다. (.git 확인 법 : ls -a)
git init 명령어를 입력하면 .git 폴더가 생기는데, 이때부터 코드 변경을 git에서 추적한다.
git status
저장되기 전 상황을 확인하는 명령어

빨간색이 나왔다 ! 아직 저장 안했다 !
git add & git commit
코드를 저장하는 명령어
git add 파일명
git commit -m “메세지 작성"

아직 저장된건 아니지만 저장 하려고 올려두면 초록색으로 바뀜
git add 파일명 → 저장하기 전 저장할 파일 저장
git commit -m “메세지 작성" → 실제로 저장하는 명령어
add는 지정하는것, commit은 저장하는 것
git log
저장 내역을 확인하는 명령어
커밋 메시지로 코드 변경점 추측 가능
커밋 id를 통해 과거로 돌아가기 가능
github로 코드 백업하기 (git push)
git remote add origin <github 주소>
- git push “github 주소" 브랜치명 → 귀찮다
- guthub 주소를 origin 이라는 이름으로 저장
- git push origin 브랜치명 → 편하다 !
git branch -m main
- 기본 브랜치 = master → 노예 제도와 관련
- 현재 브랜치명 (master)을 main으로 바꾼다
git push -u origin main
- git push origin main → 귀찮아!
- git push → 이 명령어만 입력해도 git push origin main 해줘
git remote -v : 어떤 깃허브 주소에 있는지 나옴
github 협업 기초와 충돌 해결법 (conflict)
팀장
초기 프로젝트 코드 작성
github 레포지토리 생성
코드 github에 올리기
나머지 팀원들은 협력자 등록하기
레포지토리 → settings → collaborators → add people 클릭
팀원들의 username 혹은 email로 추가 → 초대 수락해야 함
코드 복사해오기 - git clone
깃허브 주소 복사
다른 멤버가 코드를 만들 폴더 만들어주고
vscode에서 해당 폴더로 들어간 다음 터미널
git clone <깃허브 주소> .
팀원도 코드 변경하고 깃허브에 올리기 (팀원들은 git init 할 필요 없음)
코드 수정
코드 저장 명령어 실행 git add, git commit
git push origin 브랜치명
다른 사람이 변경한 코드 내 코드에도 가져오기 - git pull
가지고 와서 내 로컬에 있는 코드와 합쳐주는 역할
코드 수정 후 git push origin 브랜치명 → 이때 브랜치명은 main으로
git pull을 먼저 하라는 에러 발생 시 git pull origin 브랜치명 [merge 옵션 코드 복사해서 붙여넣기]
git config pull.rebase false
git pull origin main
터미널에 아무것도 입려깅 안되는 vim 에디터가 뜬다면 → esc : wq 엔터
충돌(conflict) 해결하기
git pull 명령어로 가져왔을 때 fix conflicts and then commit the result 오류가 나면
충돌 발생한 파일 확인하기
둘중 하나만 선택하거나 둘 다 선택해서 고치기
충돌(conflict) 해결 후 다시 git push 하기
코드 수정
코드 저장 명령어 실행 git add . & git commit -m “메세지"
git push origin 브랜치명




