git 사용법 추가
This commit is contained in:
7
.gitignore
vendored
Normal file
7
.gitignore
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# .gitignore
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
.venv/
|
||||||
|
venv/
|
||||||
|
.env
|
||||||
|
.vscode/
|
||||||
113
Git_사용법.txt
Normal file
113
Git_사용법.txt
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
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 입력)
|
||||||
|
아름다운 그래프가 나옵니다.
|
||||||
|
누가 언제 커밋했는지, 브랜치가 어떻게 갈라졌다 합쳐지는지 한눈에 보입니다.
|
||||||
|
특정 점(커밋)을 클릭하면 그 당시 파일 상태를 볼 수 있습니다.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
91
git_init.bat.bat
Normal file
91
git_init.bat.bat
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
@echo off
|
||||||
|
chcp 65001 > nul
|
||||||
|
cls
|
||||||
|
echo ========================================================
|
||||||
|
echo Git 초기 설정 마법사 V2 (for Gitea)
|
||||||
|
echo ========================================================
|
||||||
|
echo.
|
||||||
|
echo [!] 이 파일은 프로젝트 폴더의 최상위에 위치해야 합니다.
|
||||||
|
echo [!] Gitea에서 저장소를 생성한 후, HTTPS 주소를 준비해주세요.
|
||||||
|
echo.
|
||||||
|
|
||||||
|
:: 1. 원격 저장소 URL 입력받기
|
||||||
|
set /p REMOTE_URL="[입력] Gitea 저장소 주소 (HTTPS)를 붙여넣으세요: "
|
||||||
|
|
||||||
|
if "%REMOTE_URL%"=="" (
|
||||||
|
echo [오류] 주소가 입력되지 않았습니다. 창을 닫고 다시 실행해주세요.
|
||||||
|
pause
|
||||||
|
exit
|
||||||
|
)
|
||||||
|
|
||||||
|
echo.
|
||||||
|
echo --------------------------------------------------------
|
||||||
|
echo [Step 0] Git 사용자 정보 확인...
|
||||||
|
:: 사용자 이름이 설정되어 있는지 확인합니다.
|
||||||
|
git config user.name >nul 2>&1
|
||||||
|
if %ERRORLEVEL% NEQ 0 (
|
||||||
|
echo - 사용자 정보가 없습니다. 설정을 시작합니다.
|
||||||
|
echo.
|
||||||
|
set /p GIT_USER="[입력] 사용자 이름 (예: tae2564): "
|
||||||
|
set /p GIT_EMAIL="[입력] 이메일 주소 (예: tae2564@gmail.com): "
|
||||||
|
|
||||||
|
:: 입력받은 정보를 이 프로젝트에만 적용(local) 할지, PC 전체(global)에 할지 선택
|
||||||
|
:: 여기서는 편의상 Global로 설정합니다.
|
||||||
|
git config --global user.name "%GIT_USER%"
|
||||||
|
git config --global user.email "%GIT_EMAIL%"
|
||||||
|
echo - 사용자 정보 등록 완료!
|
||||||
|
) else (
|
||||||
|
echo - 기존 사용자 정보가 감지되었습니다. 건너뜁니다.
|
||||||
|
)
|
||||||
|
|
||||||
|
echo.
|
||||||
|
echo [Step 1] 저장소 초기화 중...
|
||||||
|
git init
|
||||||
|
|
||||||
|
echo.
|
||||||
|
echo [Step 2] .gitignore 파일 생성 중 (Python용)...
|
||||||
|
if not exist .gitignore (
|
||||||
|
(
|
||||||
|
echo __pycache__/
|
||||||
|
echo *.py[cod]
|
||||||
|
echo .venv/
|
||||||
|
echo venv/
|
||||||
|
echo .env
|
||||||
|
echo .vscode/
|
||||||
|
echo .idea/
|
||||||
|
echo *.log
|
||||||
|
) > .gitignore
|
||||||
|
echo - .gitignore 파일이 생성되었습니다.
|
||||||
|
) else (
|
||||||
|
echo - .gitignore 파일이 이미 존재하여 건너뜁니다.
|
||||||
|
)
|
||||||
|
|
||||||
|
echo.
|
||||||
|
echo [Step 3] 파일 담기 및 첫 커밋...
|
||||||
|
git add .
|
||||||
|
git commit -m "최초 프로젝트 업로드 (Script Auto Commit)"
|
||||||
|
|
||||||
|
echo.
|
||||||
|
echo [Step 4] 브랜치 이름 변경 (master - main)...
|
||||||
|
git branch -M main
|
||||||
|
|
||||||
|
echo.
|
||||||
|
echo [Step 5] 원격 저장소 연결...
|
||||||
|
git remote remove origin 2>nul
|
||||||
|
git remote add origin %REMOTE_URL%
|
||||||
|
|
||||||
|
echo.
|
||||||
|
echo [Step 6] 서버로 업로드 (Push)...
|
||||||
|
echo - 로그인 창이 뜨면 아이디와 비밀번호를 입력하세요.
|
||||||
|
git push -u origin main
|
||||||
|
|
||||||
|
echo.
|
||||||
|
echo ========================================================
|
||||||
|
if %ERRORLEVEL% == 0 (
|
||||||
|
echo [성공] 모든 설정이 완료되었습니다!
|
||||||
|
echo 이제부터는 git_upload.bat 파일을 사용해 수정사항을 올리세요.
|
||||||
|
) else (
|
||||||
|
echo [실패] 오류가 발생했습니다. 위 메시지를 확인해주세요.
|
||||||
|
)
|
||||||
|
echo ========================================================
|
||||||
|
pause
|
||||||
26
git_upload.bat
Normal file
26
git_upload.bat
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
@echo off
|
||||||
|
chcp 65001
|
||||||
|
echo ==============================================
|
||||||
|
echo Git Auto Uploader (Gitea)
|
||||||
|
echo ==============================================
|
||||||
|
|
||||||
|
:: 1. 변경된 모든 파일 담기
|
||||||
|
echo [Step 1] Adding files...
|
||||||
|
git add .
|
||||||
|
|
||||||
|
:: 2. 커밋 메시지 입력받기 (입력 안 하면 날짜로 자동 입력)
|
||||||
|
set /p msg="Commit message (Enter for auto-date): "
|
||||||
|
if "%msg%"=="" set msg=Auto Update: %date% %time%
|
||||||
|
|
||||||
|
:: 3. 로컬 저장소에 커밋
|
||||||
|
echo [Step 2] Committing with message: "%msg%"
|
||||||
|
git commit -m "%msg%"
|
||||||
|
|
||||||
|
:: 4. 서버로 푸시 (업로드)
|
||||||
|
echo [Step 3] Pushing to Gitea Server...
|
||||||
|
git push origin main
|
||||||
|
|
||||||
|
echo ==============================================
|
||||||
|
echo Upload Complete!
|
||||||
|
echo ==============================================
|
||||||
|
pause
|
||||||
Reference in New Issue
Block a user