형상 관리
👉🏻 모양을 잡아 준다
👉🏻 소프트웨어의 변경사항을 추적하고 기록을 남기는 것
👉🏻 새로운 버전으로 패치하고 패치된 내용, 왜 패치되었는지, 기존 이슈에서 수정한 게 뭔지를 정리하는 문서로도 사용
대표적인 툴
SVN, Git, github 등
github의 구조
소스코드가 담긴 파일을 업로드/다운로드
커밋(commit)
✔️ 내 컴퓨터에서 원격 저장소로 보낼 폴더로
업로드 (push)
✔️ 내 컴퓨터에서 원격 저장소로
다운로드(pull, clone)
✔️ 원격 저장소에서 내 컴퓨터로
clone 👉🏻 전체 코드를 전부 다운로드
pull 👉🏻 변경된 부분만 가져오겠다
깃허브 사용하기
🐶: 조장 역할
🐰: 팀원 역할
1. 깃허브 회원가입
2. 깃허브 데스크탑 설치
3. 깃허브 계정과 연동 후 레포지토리 만들기
👉🏻 연동된 깃허브 데스크탑 화면
🐶 깃허브 레포지토리 만들기
👉🏻 MIT License: 내가 만드는 코드들은 무료지만 코드까지 함께 배포하지는 않을 거야
🐶 레포지토리와 GitHub Desktop 연동 및 commit, push
👉🏻 생성된 깃허브의 Code - Open with GitHub Desktop 클릭
👉🏻 Repository URL or GitHub username and repository: 가지고 올 github repository url
👉🏻 Local path: 내 로컬 컴퓨터의 어느 경로에 저장할 것인지
👉🏻 현재 깃허브 레포지토리와 로컬 폴더 상태가 똑같아짐
= 싱크가 맞다
👉🏻 test.txt를 하나 생성 후 github desktop에 다시 접속해 보면
👉🏻 test.txt 라는 파일에 변화가 생겼음을 알려 주고 있음
= 스테이징 영역
👉🏻 변경된 내용을 자세하게 기재해 주고 Commit to main 클릭
👉🏻 메시지가 뜨지만 아직 깃허브(원격 저장소)에는 반영되지 않은 상태임
📌 현재 상태
👉🏻 원격 저장소에도 보내기 위해 Push origin 클릭
👉🏻 원격 저장소 확인 시 제대로 추가되었음!
🐶 프로젝트와 레포지토리 연동
👉🏻 STS로 클론 뜬 프로젝트를 열어 보자
👉🏻 깃허브 데스크탑에 다시 변경사항이 있는 내용들이 올라와 있다! .metadata 빼고
🙋🏻♀️ 왜 스테이징 영역에 .metadata는 안 올라갔나요?
🙆🏻♀️ .gitignore에 .metadata가 설정되어 있기 때문입니다
.gitignore란?
👉🏻 깃허브에 올리지 않는 파일들을 기록해 놓음
👉🏻 해당 파일에 기록한 파일들은 자동으로 제외됨
👉🏻 순수한 소스코드를 제외한 환경설정과 같은 파일들은 제외함
👉🏻 Servers/ 를 추가하고 깃허브 데스크탑에 다시 접속해 보면
👉🏻 스테이징 영역의 Servers 하위 파일들이 모두 사라짐
👉🏻 인코딩, 서버, 탭 등 기본적인 설정을 완료해도 .metadata, Servers 관련이기 때문에 스테이징 영역 변화 없음
👉🏻 근데 이제 프로젝트를 생성한다면?
👉🏻 .gitignore에 등록되지 않은 영역이므로 스테이징 영역에 변화로 인식됨
🐶 .gitignore 설정하기
👉🏻 폴더별로 .gitignore 파일 등록 후 깃허브에 올리지 않을 파일을 지정해 주기
👉🏻 빨간 박스로 친 파일들은 올리지 않을 것
👉🏻 현재 스테이징 영역 상황
👉🏻 패키지와 폴더를 생성
👉🏻 했지만 스테이징 영역은 변화 없음
📍 git은 파일에 대한 변화만 파악하고 폴더에 대한 변화는 인식하지 못함
👉🏻 폴더 및 패키지별 내에 파일을 반드시 만들어 줘야 함!
👉🏻 파일을 만들어 주고 다시 확인해 보면
👉🏻 변동사항 적용되므로 메시지 기재 후 Commit
👉🏻 Push origin
👉🏻 원격 저장소에도 잘 반영됨
🐶 조원 초대하기
👉🏻 Repository - Settings - Collaborators - Add people 접속 후 조원 아이디 입력하여 초대