Tip

Git & GitHub

Happy._. 2024. 4. 15. 21:35

Git : 코드의 변경점 기록(버전 관리 도구)

Github : 온라인 백업, 공유, 협업(온라인 코드 저장소)

 

Git 필수 명령어 리스트

git init : 코드 관리를 시작하는 명령어

  • 프로젝트 시작 전 한 번만 입력(프로젝트 당)
  • 정확한 프로젝트 폴더(경로)에서 입력해야 함
  • .git이라는 폴더(숨겨진 폴더)가 생성됨(ls -a 명령어로 확인 가능)

git add

  • git add <파일명> : 저장할 파일을 지정
  • git add . : 모든 변경된 사항(파일들)을 지정

git commit

  • git commit -m “메시지 작성” : 실제로 파일 저장
  • commit 메시지는 내가 무슨 코드를 작성했는지 자세히 작성하는 게 좋음

Please tell me who are you 뜨는 경우(계정 설정 필요)

  • git config --global user.name <유저네임>
  • git config --global user.email <유저이메일>

git status

  • 파일 저장 여부를 확인하는 명령어
  • modified: <파일명> : 코드의 변경은 있지만 저장을 하지 않은 파일
  • nothing to commit : 더 이상 저장할 파일이 없음

git log

  • 저장 내역을 확인하는 명령어
  • commit 내역들이 출력됨
  • 커밋 메시지로 코드 변경점 추측 가능
    • git diff 코드 변경 확인
    • git reset 과거로 돌아가기 가능
    • q로 빠져 나오기 가능

Github으로 코드 백업하기

git remote add origin <git repo link>

  • git repo link를 origin이라는 이름으로 저장
  • git push origin 브랜치명(ex: main)

git branch -M main

  • 기본 브랜치 : master
  • 현재 브랜치명(master)을 main으로 변경

git push -u origin main

-u 의 의미 : git push origin main를 git push 명령어만 입력해서 git push origin main와 같이 처리

git push

  • 추가로 수정된 코드를 github에 반영하는 명령어
  • git push origin <브랜치명>

Git으로 협업하기

협력자 등록

  • Git repo → Settings → Collaborators → Add people
  • 팀원들의 username 혹은 email로 추가(팀원이 초대를 수락해야 함)

git clone

  • git clone <복사할 git repo link> .
  • 마지막 .의 의미 : 현재 폴더에 clone
  • .을 입력하지 않으면, 하위 폴더가 생성되며 해당 폴더에 코드가 복사됨

git pull

  • 다른 사람이 변경한 코드를 내 코드에 가져오기
  • 코드 수정 후 git pull을 먼저 하라는 에러 발생 시 git pull origin <브랜치명>
  • git pull 시 아래와 같은 경고문이 뜨면 git config pull.rebase false
  • "You have divergent branches and need to specify how to reconcile them."

Git 충돌이 발생하는 이유

  • 같은 파일의 같은 위치에 코드가 변경되었기 때문
  • Current Change : 현재 변경한 코드
  • Incoming Change : pull하면서 가져온 코드

충돌(Conflict) 해결하기

  1. <<<<HEAD 삭제
  2. ========= 삭제
  3. >>>>xxxx… 삭제
  4. 원하는 코드로 수정
  5. git add <파일명>
  6. git commit -m “commit message”
  7. git push origin <브랜치명>

'Tip' 카테고리의 다른 글

LeetCode - Git Repo 연동  (0) 2024.05.22
[PostgreSQL] Supabase 설정  (0) 2024.05.07
Git & GitHub - 브랜치를 활용하여 협업하기  (0) 2024.05.03