Git 방식 : 내 컴퓨터에도 서버와 똑같은 전체 저장소 사본을 가진다. Commit : 내 PC에만 버전 이력 남길 수 있다. Push : 서버로 전송 Branch : 따로 가지쳐서(폴더 복사가 아닌 포인터만 이동) 작업 후 나중에 합치기 쉽다. Working Directory : 실제 코드를 수정하는 폴더 Staging Area : 커밋할 파일만 골라서 올려두는 가상의 공간(git add) Repository : 확정된 버전들이 저장되는 곳(git commit) Step 0 : 최초 한번 설정, 누가 코드를 짰는지 이름표를 붙이는 작업 git config --global user.name "tae2564" git config --global user.email "tae2564@gmail.com" Step 1. 프로젝트 가져오기 (Clone) : Gitea의 저장소를 PC로 가져온다. git clone https://git.tae2564.synology.me/tae2564/ProjectName.git cd ProjectName Step 2. 코드 수정 및 업로드 2.1 작업 시작 전 최신 코드 받기 git pull 2.2. 상태 확인 : 어떤 파일이 수정되었는지 확인한다. git status 2.3. 수정한 파일 중 커밋할 파일을 Staging Area에 추가한다. git add main.py # 특정 파일만 담기 git add . # 수정된 모든 파일 담기 (가장 많이 씀) 2.4. Commit : 버전 확정, 내 PC에 버전을 기록한다. git commit -m "수정 내용" 2.5. Push : 서버 전송, Gitea 서버로 코드를 업로드한다. git push origin main # 처음엔 git push -u origin main을 한 번 해줘야한다. git push # 이 후엔 git push 만 해도된다. 2.6 되돌리기(Reset) git reset --soft HEAD~1 # 방금 한 커밋을 취소하고 파일은 살려둠 (Staging 상태로) git reset --hard HEAD~1 # 방금 한 커밋을 취소하고 파일 수정내역까지 싹 날림 (주의!) Step 3. Branch 활용 기존 코드는 그대로 두고 수정한 코드로 테스트해보고 싶을 때 브랜치를 사용한다. 3.1. 브랜치 생성 및 이동 이제부터 수정하는 코드는 원본 main에 영향을 주지 않는다. git switch -c BranchName # BranchName라는 이름의 브랜치를 만들고 이동 3.2. 작업 후 커밋 git add . git commit -m "수정 내용" 3.3. 원본(main)에 합치기(Merge) 테스트가 성공적이어서 원본에 반영하고 싶다면 git switch main # 다시 본진으로 복귀 git merge BranchName # 작업한 브랜치를 끌어와서 합침 git push # 서버에 반영 3.3 다 쓴 브랜치 삭제 git branch -d BranchName # -d 옵션은 delete의 약자 Python 프로젝트 필수 팁 (.gitignore) Python을 쓸경우 컴파일된 파일(__pycache__)이나 가상환경 폴더(venv)는 Git에 올리면 안된다. 지저분해지고 충돌난다. 프로젝트 최상위 폴더에 .gitignore라는 파일을 만들고 다음 내용을 추가한다. (텍스트 파일) # .gitignore 파일 내용 __pycache__/ *.py[cod] .venv/ venv/ .env .vscode/ VS Code 사용시 왼쪽 메뉴의 소스제어(Source Control) 탭에서 add, commit, push, diff를 GUI로 지원한다. 좌측 확장(Extensions) 메뉴에서 Git Graph 설치 : 커밋 이력을 시각적으로 보여준다. 1. 저장소 가져오기 (Clone) F1 키를 누르고 Git: Clone 입력 후 엔터. 주소 입력: 아까 Gitea에서 만든 주소 입력 : https://git.tae2564.synology.me/tae2564/Finder.git 폴더 선택: 소스 코드를 저장할 PC 내 폴더 선택. 로그인: 아이디/비번 물어보면 Gitea 계정 입력. 열기: "복제된 리포지토리를 여시겠습니까?" 하면 [열기(Open)] 클릭. 2. 핵심 루틴: 수정 -> 담기 -> 커밋 -> 푸시 VS Code 좌측의 [소스 제어 (Source Control)] 아이콘이 메인 작업 공간이다. 2.1 수정 (Modify) 파일을 수정하고 저장(Ctrl+S)하면, 소스 제어 탭의 '변경 사항(Changes)' 목록에 파일이 뜹니다. 파일 옆에 M(Modified) 마크가 뜹니다. 파일을 클릭하면 Diff(비교) 화면이 열려 이전 버전과 뭐가 달라졌는지 바로 보여줍니다. 2.2 담기 (Stage) = git add 커밋할 파일을 선택하는 단계입니다. 파일 이름 옆의 + (변경 내용 스테이징) 버튼을 누릅니다. 그러면 파일이 '스테이징된 변경 사항(Staged Changes)' 으로 이동합니다. (장바구니에 담긴 상태) 2.3 커밋 (Commit) = git commit 내 PC에 저장하는 단계입니다. 입력창(메시지)에 "검색 알고리즘 수정"이라고 적습니다. 위쪽의 [커밋(Commit)] 버튼(또는 Ctrl+Enter)을 누릅니다. 파일들이 목록에서 사라집니다. (로컬 저장소에 안전하게 저장됨) 2.4 푸시 (Push) = git push Gitea 서버(NAS)로 보내는 단계입니다. 커밋을 하고 나면 버튼이 [변경 내용 동기화(Sync Changes)] 로 바뀝니다. (파란색 버튼) 이걸 누르면 내 코드가 NAS로 올라갑니다. 3. 브랜치 활용 (새로운 시도 할 때) '주식 검색기'의 기본 로직은 놔두고, 실험적인 기능을 넣고 싶을 때 씁니다. 3.1 브랜치 생성: VS Code 왼쪽 하단 파란색 상태 표시줄을 보면 main (또는 master)이라고 적힌 글씨가 있습니다. 클릭 -> [+ 새 분기 만들기...] 선택 -> 이름 입력 (예: feature/rsi-test). 3.2 작업: 이제 코드를 막 수정해도 원본(main)은 안전합니다. 작업 후 위와 똑같이 커밋(Commit) 합니다. 3.3 브랜치 변경: 왼쪽 하단 브랜치 이름을 클릭해서 언제든지 main과 feature/rsi-test를 왔다 갔다 할 수 있습니다. (파일 내용이 순식간에 바뀝니다.) 4. 시각적 확인 (Git Graph) 아까 설치한 Git Graph를 써봅시다. 좌측 하단 상태 표시줄에 [Git Graph] 라는 글씨를 클릭합니다. (안 보이면 F1 -> Git Graph: View 입력) 아름다운 그래프가 나옵니다. 누가 언제 커밋했는지, 브랜치가 어떻게 갈라졌다 합쳐지는지 한눈에 보입니다. 특정 점(커밋)을 클릭하면 그 당시 파일 상태를 볼 수 있습니다.