1. Git 입문
fork 와 clone 의 차이점
| fork | clone | |
| 의미 | 다른사람의 GitHub 코드 저장소(업스트림)에서 나의 GitHub 코드 저장소(다운스트림)로 가져옴 (복제) 로컬로 가져오진 않음 |
로컬로 가져옴 GitHub 코드 저장소(다운스트림) 로 가져오는 건 아님 |
| 순서와 권한 | 변경사항을 push 할 권한이 x fork 된 프로젝트를 다시 clone 해서 가능 |
로컬에 새 폴더 생성, 하위 디렉터리(.git) 초기화 push 로 기여가능 pull 로 내려받을 수 있음 |
Download ZIP 은 비추천
- 버전관리가 어려움 : commit history , branch constructure 확인 불가능 + 협업 힘듦 + 업데이트(pull) 어려움
- 작업 속도 느려짐, 하위모듈을 포함하지 않을 수 있음
ZIP은 해당 파일 안에 .exe 실행파일이 존재 할 때 바로 실행하고 설치해서 사용할 때 씀
1. clone : url 복사해서 clone 받을 폴더의 상위 터미널에서
git clone <url>

2. branch
// branch 수정 또는 삭제
//0. 현재 로컬에 있는 branch 들 확인
git branch
//1. main 또는 master branch로 이동
git checkout main //or master
// 2. 수정
git branch -m <old-name> <new-name>
// 2. 삭제
git branch -d <branch-name>
// 3. 다시 branch로 돌아가기
git checkout <branch-name>

git branch <branch name> // mk branch
git checkout <branch name> // mv to branch

3. 수정
굳이 vim 을 사용해서 수정할 필요 없고 (nano, ctrl x . .) IntelliJ에서 그냥 수정해도 됨
branch 에서 수정하면 main에 영향이 바로 가지 않기때문
4. add, commit, push
git add <file name> //수정한 파일명
git commit -m "<수정 세부사항 메시지>"
//git push -u origin <branch name>
//initial push method
git push origin <branch name>
5. pull
사이트로 이동해서 메시지 확인하고 pull request 하기
pull request : 불필요한걸 버릴지 말지 고민, 합쳐지는지, 리뷰


이러면 이제 main 에 업데이트 됨!
7. pull
다른사람이 업데이트 한 내용을 나의 로컬 branch 에 가져오기
git pull origin main
참고자료
https://yujindevv.tistory.com/38 clone 과 fork 차이점
https://www.freecodecamp.org/korean/news/git-delete-local-or-remote-branch/
https://www.freecodecamp.org/korean/news/git-rename-branch-how-to-change-a-local-branch-name/ branch 명령
2. Git 과제 트러블슈팅
강의를 보며 그대로 따라했고 조원들과 함께 하다보니 따로 오류가 나거나 문제가 생긴 상황이 없었습니다.
대신 시간이 비교적 오래걸린 도전과제 문제하나를 다시 정리해봤습니다.
ch 5-3: 프로젝트 관리하기 (4) - 변경 충돌 사항 해결하기
같은 main 을 각각 branch 하여 작업하고 있는 A와 B가 있다고 가정했을 때 A가 파일의 내용을 수정 후 add, commit, push, PR, merge 등 일련의 과정을 다 수행하여 main 을 업데이트 한 상황을 가정합니다.
해당 상황에서 B가 A의 변경사항을 pull 하지 않은 상태에서 B의 branch 에서 똑같은 파일을 수정하여 add, commit 합니다. 이후 B가 fetch, merge 명령어를 작성하면 conflict 메시지를 확인할 수 있습니다.
git add index.html
git commit -m "B: change main font 000000"
git fetch origin
git merge origin/main

CONFLICT (content): Merge conflict in index.html 메시지를 확인했고,
Automatic merge failed; fix conflicts and then commit the result: 충돌을 해결하고 결과를 commit 하라는 메시지가 옵니다.
해당메시지 이후 수정했던 파일을 보면

<<<< head
======
>>>> origin/main 에서 어느부분에서 conflict 가 발생하는지 알 수 있었고
상단의 파일이 해결되지 않은 병합 충돌이 있습니다 메시지 오른편에 충돌 해결 텍스트를 좌클릭합니다.

가운데를 기준으로 conflict 가 발생한 branch 의 내용들이 보입니다. origin/main 의 변경내용과 frontend/jiwon-e-e (B의 branch명) 중에서 어떤 수정사항을 기준으로 할것인지 결정할 수 있습니다.
X 와 >> 버튼을 이용해 A B 둘 다, 또는 한쪽, 또는 아무것도 선택하지 않고 적용을 누르면 모든 변경사항 처리 완료 메시지가 가운데 표시됩니다.



git log를 확인하고 다시한번 add, commit, push 단계를 실행하면 안전하게 충돌을 해결했다는 메시지를 확인할 수 있습니다.
git log
git add <충돌 이후 수정한 파일명>
git commit -m "<commit 메시지 작성>"
git push origin <branch name>
'GIT' 카테고리의 다른 글
| Local -> Git 업로드 (0) | 2026.02.03 |
|---|---|
| GIT 강의 정리 1 (0) | 2026.01.07 |