Git
깃허브 협업하는 방법
Puft
2025. 4. 10. 08:40
1. git 초기 설정
git 다운 후 실행 | 32-bit Git for Windows Setup 클릭 | |
설치 옵션 |
|
|
bash에서 사용자 이름, 이메일 주소 설정 |
git config --global user.name "사용자이름" git config --global user.email "사용자이메일@example.com" |
ex) git config --global user.name "sdedu" ex) git config --global user.email "sdedu@example.com" |
확인하기 | git config --list | 설정 정보 확인 |
2. 협업 준비(연결)
프로젝트 폴더에서 bash (경로 설정 되어있음) or 경로 설정 ex) cd ~/Desktop/project/jotai |
cd a : 현재 경로에 a를 추가 (현재 경로안에 a로 들어가겠다) cd .. : 현재 경로에서 한번 나가겠다 |
|
Git 초기화 (로컬 저장소 만들기) |
git init | .git 폴더가 생성되고 이 폴더 안에 Git 관련 정보들이 저장됨 |
GitHub 원격 저장소 만들기 후 원격 저장소 주소 복사 |
예: https://github.com/사용자명/jotai.git | |
로컬 저장소와 원격 저장소 연결 | git remote add origin “붙여넣기” | ex ) git remote add origin http://github.com/test/test.git 우클릭 후 paste해야 붙여넣기 가능 로컬 저장소를 GitHub의 원격 저장소와 연결하는 명령어 |
확인하기 | git remote -v | ex) origin https://github.com/test/test.git (fetch) origin https://github.com/test/test.git (push) |
3. 올리기
스테이징 | git add . | git add . : 모든 파일 스테이징 git add “폴더명” : 해당 폴더만 스테이징 |
커밋 | git commit -m "초기 프로젝트 설정 및 커밋" | 업로드할 내용에 대한 간단한 설명 |
푸쉬 | git push -u origin main | 푸쉬하기 |
푸쉬 오류시 (main 브랜치가 아닐 시) |
git branch 브랜치 확인 git push -u origin master |
main브랜치가 아니고 다른거면 해당 브랜치 이름으로 |
강제 푸쉬 | git push origin a:b --force | a를 기반으로 b에 강제로 덮어씌우면서 푸쉬 |
충돌 관리 (Conflict Handling) |
여러 사람이 동시에 같은 파일을 수정했을 경우, 충돌(Conflict) 이 발생할 수 있습니다. 예를 들어, a와 b가 동시에 index.html 파일을 수정한 경우.
|
4. 내려받기
최초 (내려받은 적 없는 프로젝트일 경우) |
git clone “원격저장소주소” | ex ) git clone https://github.com/test/test.git |
내려받은 후 (다른 팀원의 수정사항 가져오기) |
git pull origin main |
5. 트러블 슈팅
1 | git pull origin main --strategy-option=ours | 내가 한 변경 사항을 무조건 우선으로 할 때 | 낮음 (특정 파일만) |
2 | git merge -X ours origin/main | 내가 한 변경 사항을 무조건 우선으로 할 때 | 낮음 (특정 파일만) |
3 | git push --force | 강제로 덮어쓸 때 (모든 변경 사항 무시) | 매우 위험 |
4 | git reset --hard HEAD + git pull --rebase | 전체 덮어쓰기 | 중간 정도 위험 |
협업을 위한 단계
최초 - 모든 팀원이 프로젝트를 git clone으로 내려받는다.
1. 각자가 작업한 뒤 git add .로 스테이징 git commit -m "메시지" 로 커밋한다.
1-1. 기존의 내용 외에 추가는 2번으로, 수정은 git pull origin main --strategy-option=ours
(내가 수정한 부분을 다른 누가 수정했다면 이렇게 쓰면 안되고 직접 프로젝트에서 확인 후 다시 git add!!!)
(추가가 아닌 수정을 하게되면 깃은 달라진 부분에 대해 충돌을 일으켜 어떻게 할건지 사용자에게 물어보는데
첫째로 기존 데이터를 남길지
둘째로 나의 데이터를 남길지
셋째로 기존, 나의 데이터를 같이 남길지를
프로젝트를 열어서 직접 수정을 하고 그 후에 git add, git commit을 다시 해주게되면
사용자가 수정했구나 라고 인식하고 충돌을 일으키지 않음)
2. 작업 내용을 원격 저장소로 git push -u origin main 한다.
3. 다른 팀원들은 git pull 로 최신 내용을 가져온다.
- 이후 git add, git commit, git pull origin main, git push