ETC/1. Today I Learned

[Git 기초] Git으로 협업하기

montmer27 2025. 12. 1. 21:10

<head>

<format> "HTML" </format>

<style> "일기" </style>

<why> [ "형식보다 내용에 집중" , "빠르게 작성 가능"] </why>

<time> "종료 10분 전}  </time>

</head>

<body>

오늘은 Git으로 협업하는 방법의 기초를 배웠다.

 

Git은 대표적인 버전 관리 도구로서, 코드를 버전별로 편리하게 관리할 수 있는 도구이다.

Git은 로컬 저장소(PC)에 설치되고, 코드를 필요(기능, feature)에 따라 여러 버전으로 분기하여(branching) 작성하고 단계적으로 저장(add, commit)할 수 있는 기능을 제공한다.

 

오늘 Git을 이용해 협업하는 연습을 해보았다.

1. 타인의 Github(원격 저장소)에 있는 코드를 내 로컬 Git으로 가져오기를 실습했다. 이를 Cloning이라고 한다.

- 참고 : 내 Github로 바로 가져오는 것은 Fork라고 한다. 'Fork from ~ '과 같이 출처가 표시되기 때문에 불펌은 원천적으로 불가능하다.

 

2. 내 로컬 Git에 있는 코드를 내 Github에 업로드하기를 실습했다. git add와 git commit을 수행해야 했다.

-> 트러블슈팅 발생

 

튜터님의 도움을 받아 다음과 같이 트러블슈팅을 수행했다.

 

이제 보니 내가 해당 코드 원본 소유자(RyanKor)의 깃허브에 push를 시도했던 것으로 보인다.
내가 요청한 url(RyanKor의 깃허브)에 대한 액세스 권한이 없어서 에러 메시지가 발생한다.

 

 

내가 push하는 깃허브의 저장소는 origin에 저장되어 있다. git remote -v 커맨드를 통해 origin의 주소가 소유자의 리포지토리로 등록되어 있음을 확인, origin 값을 지우고 내 리포지토리로 대체하였다. 

 

 

이후 git status 커맨드를 통해 현재 메인 브랜치에 커밋할 것이 있는지 확인한다. 

'working tree clean'이라며 git commit 및 push 명령이 수행되지 않는다. 에러 원인을 살펴보니 현재 브랜치가 메인 브랜치여서 커밋할 더 상위 브랜치(upstream branch)가 없다고 한다. 하지만 remote를 upstream으로 설정하면 현재 브랜치 내용 push가 가능하다고 한다.

 

바로 실행한다. 

 

성공적으로 커밋 및 push되었다. 결과를 보니 새로운 main 브랜치가 생성, origin으로 지정되어 해당 브랜치로 push가 성공적으로 이뤄진 것으로 보인다.

 

이후 git rm -r --cached .idea를 통해 .idea 폴더(로컬마다 자동으로 생성되는 설정 파일이 들어있는 파일)의 캐시를 무효화했다. 

 

이후 "설정 파일 제외"라는 이름으로 commit, push를 다시 진행했다. 

 

 

성공.

.idea/ 이하의 모든 파일이 untracked files로 분류됐다. 이는 git의 관리 대상에서 제외한다는 뜻이다. 

 

git -rm -r --cached (폴더명)  대신, .gitignore에 제외할 파일의 경로 (또는 폴더명)를 적어야주어도 git에서 자동으로 제외한다. 참고로 .gitignore가 없으면 만들면 된다. 

 

기타 Troubleshooting- Convention 불일치 문제: 과제 발제가 담긴 Notion 문서와 템플릿 파일에 포함된 README.MD에 모두 과제 가이드라인 및 예시 파일명이 적혀져 있었는데, 절차는 동일하지만 파일 및 폴더명 작성 예시가 달라 팀원 각자가 push했을 때 이름이 통일성이 떨어졌다.

 

: 앞으로는 공동 개발 전에 convention을 반드시 협의하고 노션에 적어놓도록 해야겠다. 

 

오늘 잘한 점 - 시간을 정해 두고 주기적으로 만나 진행상황을 점검한 점이 좋았다. 텀이 짧아서 뒤쳐진 팀원과 나의 상대적 진도를 확인할 수 있고, 이슈가 있을 때 수시로 이야기하며 빠르게 해결할 수 있는 점이 좋았다. 

 

</body>