1. Git / GitHub
- Git : 개발자의 코드를 효율적으로 관리하기 위해서 개발된 '분산형 버전 관리 시스템'
- GitHub : Git Repository를 관리 할 수 있는 클라우드 기반 서비스
2. 용어 정리
-
Git Repository
- 내가 작업하는 소스 코드 폴더가 버전 관리를 받게 하기 위해서는 내 폴더를 Git의 관리 아래에 두어야하는데Git으로 관리되는 폴더를 Git Repository라고 함
- 종류
- Remote Repository : 내가 작업한 코드를 공유하기 위해 업로드 하는 공간 (git 공간?) 물론 다른 사람의 Remote Repository에 있는 파일을 내 로컬로 가져올 수도 있다.
- Local Repository : 내 PC의 로컬 작업 공간
-
commit
- 변경 사항에 대한 스냅샷을 만들고 백업 복사본을 만듬 (commit한 상태는 내가 작성한 코드를 임시저장한 상태라고 생각하면 될거같다.)
commit한 후에 push해야 git에 올라가게 됨
-
Fork
- 자료를 내 원격 저장소(Remote Repository)에 가져오기 위한 작업
git에서 fork 버튼 하나만 누르면 내 Repository로 가져온다.
-
Clone
- Fork 한 파일을 Local Repository 로 가져오기 위한 작업
- git에서 code 버튼을 눌러서 다운받거나 cli에서 명령어 이용
- git clone <ssh주소> (단, git 설정으로 ssh 등록 완료 후 사용 가능)
-
Push / Pull
- Push : 내 컴퓨터(Local Repository)에서 작업 완료 후 commit한 상태에서 Remote Repository 에 올려주기 위한 작업
- Pull : Remote Repository에서 변경 사항이 있을 때 LocalRepository로 가져오는 작업
3. Git에 SSH 적용
- 적용 해두면 나중에 터미널로 commit, push, pull, cloen 등 할 수 있음 -> 편함
적용 방법
-
터미널에서 ssh-keygen 입력하여 SSH 키 생성한다.
-
cat ~./ssh/id_rsa.pub 명령어를 입력해서 SSH키를 복사 한다.
(명령어 입력후 빨간 박스부분 전체 복사)
-
Git에서 번호대로 들어가서 SSH를 새로 등록해준다.
-
등록했다면 테스트를 해봐야하는데 아무 code에 들어가서 code 버튼을 누르고 SSH를 복사한다.
-
CLI(터미널) 에서 git명령어를 입력하여 다운되는지 확인.
(다운이 잘 된다면 잘 등록된거다! 다운로드 위치는 CLI(터미널) 경로 확인)
git clone <복사한 SSH주소> // 입력 후 다운로드 되는지 확인
4. git 사용
나혼자 작업할때
- 다른 git repository에서 Fork 해서 내 Repository로 가지고 온다.
- 내가 작업하기 위해서 내 PC(Local Repository)로 Clone 한다.
git clone <SSH 주소> 명령어 또는 직접 다운로드 함
- 작업 후 add 하여 변경사항을 commit 할 수 있는 상태로 만들어 줌 (staging area에 올림)
git add <파일명> 또는 git add . // 사용하여 모든파일을 한번에 추가
git restore <변경한 파일명> // 변경사항 폐기 (필요 시)
git commit -m '커밋메세지'
git reset HEAD^
- push를 통해 Local Repository에 있는 commit 기록을 git Remote Repository에 업로드
git push <내이름/origin> <main>. // main또는 master 권장함 주로 main 권장
동료와 같이 작업할때하기
- 나의 Local Repository와 remote Repository를 연결해준다.
git remote add origin <내 repository 주소>
- 동료(pair)의 Repository를 나와 연결
git remote add pair <동료 repository 주소>
// 위의 명령어 중 pair 는 내가 원하는걸로 바꿀수 있다.
git remote -v // 사용해서 연결된 모든 사용자 확인
- 동료가 작업한 파일을 나의 Local Repository로 다운
git pull pair master
// 혹시 pull 하다가 충돌 오류가 발생하면 git status 명령어로 어떤 파일이 충돌되는지 확인.