<목차>
1. 필수 리눅스 명령어
2. Git & Github의 개념
3. Git 필수 명령어
4. Github으로 코드 백업하기
5. Github 협업 기초와 충돌 해결법(conflict)
필수 리눅스 명령어
-git은 아니지만 기본 리눅스 명령어를 알아야 수월함.
*pwd(print working directory)
-현재 터미널에서 내 위치를 확인하는 명령어
-현재 내가 작업하는 폴더(Users/developsoo)를 보여달라는 뜻
-참고 : ~은 Home(홈)이라는 경로이며, 우리가 보는 데스크탑 보다 더 상위의 폴더를 말함
*ls(list)
-내 폴더 안에 있는 폴더 & 파일 내역을 보여줌
*ls -a (list all)
-숨겨진 파일 (보통 . 으로 시작함)도 모두 볼 수 있음
--숨겨진 파일이 왜 있을까??
----일반 사용자들이 볼 필요 없는 것들을 숨겨둔다, 개발자들이 보는 파일?
*cd 폴더명 (change directory)
-ls 명령어에서 확인된 폴더로 이동 가능
-Desktop 안에 있는 다른 폴더로 이동 가능
--마치 데스크탑의 폴더를 더블 클릭해서 들어간 것과 같은 효과
-cd.. : 한 단계 위의 폴더라는 뜻
-폴더명/폴더명 : 한 번에 더 깊이 들어갈 수 있음
*mkdir (make directory)
-현재 경로에서 폴더를 생성하는 명령어
*touch 파일명
-현재 경로에서 파일을 생성하는 명령어
-파일의 생성과 파일의 날짜, 시간을 변경하는 명령어
Git & Github의 개념
*Git : 코드 변경점 기록(버전 관리 도구)
-코드 변경점 기록
-버전 관리 도구, 형상 관리 도구
-소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것
-예를 들어 레포트를 작성할 때, 레포트를 만들고 나서 수정해야할 경우가 생기면 불안해서 복사본 파일을 만드는 경우가 있음
--이렇게 되면 파일이 많아져서 지저분해질 뿐만 아니라 각 파일에서 어떤걸 변경했는지에 대한 기록이 없음
---이런 문제점인 파일이나 폴더를 복사하지 않고, 변경기록도 할 수 있도록 해주는 것이 Git 이라고 보면 됨.
1. 하나의 폴더 내에서 코드의 변경점을 기록하기 위해 사용
2. 에러 발생 시 과거의 코드 기록으로 쉽게 되돌아가기 가능
--주의할 점 : 협업 시 코드를 돌리게 되면 코드가 꼬일 수도 있음! 주의해서 사용
*Github : 온라인 백업, 공유, 협업 (온라인 코드 저장소)
-백업과 공유가 가능한 온라인 코드 저장소
-Github으로 백업 가능
-Github으로 공유 가능
-Github으로 협업 가능
-예를 들어 과제를 하다가 저장이 안되서 과제물이 날아간 경우 -> 처음부터 다시 만들어야함
--보통 이런 상황 방지를 위해 온라인 백업(클라우드 사용)을 함 -> 온라인 업로드 -> 팀원들에게 공유도 쉬워짐
Git 필수 명령어
<필수 명령어 리스트>
1. git init
2. git add
3. git commit
4. git status
5. git log
6. git push
7. git clone
8. git pull
*git init
-코드 관리를 시작하는 명령어
-initialize : 초기화하다, 초기 세팅하다 -> 이 단어의 준말
-프로젝트 시작 전 딱 한 번만 입력하면 됨
---여러 번 입력해도 문제되진 않음
-정확한 프로젝트 폴더(경로)에서 입력해야함
---잘못하면 데스크탑 전체 파일, 폴더가 기록됨
-저장하고 터미널 열어야 함
-다른 폴더에서 명령어 입력하면 안됨, pwd로 현재 경로 확인 후 경로가 다르면 cd 명령어로 이동 후 git init 명령어 실행
1. 터미널을 실행하고 나서 pwd로 경로를 확인한 후 정확한 폴더인지 확인
2. git init 을 입력 후 "initialized empty Git repository in ~~" 이 나오면 성공
3. 이렇게 git init이 적용되고 나면 숨겨진 폴더 .git이 생성되고, 이 폴더에서 코드 변경점을 계속 추적하고 기록함
-.git 폴더는 ls -a 명령어로 확인 가능
*git add & gid commit
-코드를 저장하는 명령어
-git add 파일명 -> 저장하기 전 저장할 파일 지정(나 여기 저장할거야~)
-git commit -m "메시지 작성" -> 실제로 저장하는 명령어
---메시지 부분은 내가 무슨 코드를 짰는지 자세하게 적는 것이 좋음
-지정할 파일이 많아지면...? 일일히 지정하기 귀찮고 번거로움
--이럴때 내 프로젝트의 변경사항을 한 번에 지정하는 방법
----1. git add . -> 점(.)은 나의 경로의 모든 변경된 사항을 말함
----2. git commit -m "메시지 작성"
----3. git status ->로 확인
------더 이상 저장할 것이 없다면 nothing to commit 이라고 뜸
<please tell me who you are>-이런 에러 발생하면 계정설정을 하지 않았기 때문
해결방법 = 아래 두개 입력
-git config --global user.name 유저네임
-git config --global user.email 유저이메일
*git status
-저장 여부 확인하는 명령어
-코드의 변경은 있지만 저장을 하지 않은 파일 = 붉은색으로 표시
-어떤 파일이 변경됐는지, 어떤 파일이 add(지정)됐는지 등 변경상태를 확인하는 명령어
*git log
-저장 내역을 확인하는 명령어
-커밋 메시지로 코드 변경점 추측 가능
-git diff : 코드 변경 확인
-git reset : 과거로 돌아가기 가능
-q : 빠져나오고 싶을 때
Github으로 코드 백업하기
-Github 사용 이유? = 백업, 공유, 협업
<github 사용법>
1. 온라인 저장소 (github repository) 만들기
-new -> repository 이름 입력 -> create repository 클릭
2. 내 코드를 github repository로 업로드하기
3. 추가로 수정된 코드 github에 반영하기 : git push
-코드 수정
-코드 저장 명령어 실행 -> git add . / git commit -m "메시지"
-git push origin 브랜치명
Github 협업 기초와 충돌 해결법(conflict)
*Github 협업
1. 초기 프로젝트 코드 작성
2. github 레포지토리 생성 (팀장이 생성)
3. 코드 github에 올리기 (git push)
4. 협력자(collaborator) 등록하기
-github 레포지토리 -> settings -> collaborators -> add people
-팀원들의 username 또는 email 로 추가 -> 초대 수락해야함
5. 코드 복사해오기 (git clone)
-github 레포지토리에서 github 주소를 복사
-코드를 작성할 폴더를 만들어 줌
-vs code에서 해당 폴더를 열어줌
-get clone <github 주소> . 명령어 입력
---맨 뒤에 . 빼먹지 말기
-프로젝트 파일이 들어와짐
6. 다른 사람이 변경한 코드 내 코드에도 가져오기(git pull)
-다른 사람이 이미 git push하고 내가 git push 하려고 하면 에러 발생
-git push 전에 git pull 먼저해야함
<팀원이 코드 변경하고 github에 올릴때>
1. 코드 수정
2. 코드 저장 명령어 실행(add, commit)
3. git push origin 브랜치명
*git pull
-코드 수정 후 git push origin 브랜치명
-git pull 을 먼저 하라는 에러 발생 시 git pull origin 브랜치명
*충돌(conflict) 해결하기
-충돌이 발생하는 이유는 같은 파일의 같은 위치에 코드가 변경되었기 때문
1. <<<<head 삭제
2. =====삭제
3. >>>>4182...삭제
4. 원하는 코드로 수정
5. 코드 저장 명령어 실행(add, commit)
6. git push origin 브랜치명
*Working directory(작업공간)
-사용자의 작업 공간으로써, 로컬 저장소에 접근할 수 있으며 실제 파일을 수정하거나 생성하는 공간
-현재 작업 중인 소스코드들을 담고 있음
-운영체제도 워킹 디렉토리 내부의 파일들만 접근하거나 수정할 수 있음
-작업 폴더에서 .git 디렉토리를 제외한 나머지 부분
-워킹트리, 워킹디렉토리, 작업디렉토리 등으로 불림
-워킹 디렉토리에서는 파일을 추적(tracked)/ 비추적(untracted) 상태로 구분
<tracked>
-tracked 상태의 파일들은 git에 의해서 파일의 변경 이력이 추적된다.
-모든 파일들의 변경 이력을 추적할 경우에는 시스템의 부하가 커지므로 git에서는 요청받은 파일들만 변경 이력을 추적한다.
-$git add <file_name>
-위 명령어를 사용하면 이름이 file_name인 파일을 tracked 상태로 등록
<untracked>
-저장소 내에서 새로 만들어진 모든 파일들은 untracked 상태로 시작한다.
-untracked 상태인 저장소 내의 파일들은 git이 코드 변경 이력을 추적하지 않는다.
*Staging area
-커밋을 하기 위해 $ git add 명령어로 추가한 파일들이 모여있는 공간
-여기에 추가한 파일들을 commit을 해야 최종적으로 저장소에 들어감
*Repository(실제로 저장하는 공간)
-git은 작성한 소스코드 파일의 모든 변경 사항을 관리하며, 파일들의 변경 내역을 저장소(repository)에 저장을 한다.
<깃 저장소>
-깃 저장소는 폴더와 외형적으로 비슷함
-깃 저장소의 내부구조
---깃 저장소에는 숨겨진 폴더 .git이 존재, 해당 폴더에서 버전 관리 시스템 vcs에 필요한 파일 변경 이력을 기록
---프로젝트의 모든 변경 이력과 history를 가진 일종의 데이터 베이스와 동일
---.git 디렉토리가 로컬 저장소에 해당한다.
'내배캠 > 수준별 강의, 특강' 카테고리의 다른 글
[내일배움캠프/백엔드] 특강. Git 심화 (0) | 2024.10.24 |
---|