본문 바로가기
개발 공부

Git/GitHub_2

by brandnewthinker 2023. 1. 15.
반응형

GitHub 활용

  • 초기 원격저장소 설정하기
    1. New Repository
    2. 로컬 저장소에 원격 저장소 정보 설정하기
      • 로컬 저장소에는 한번만 설정하면 된다.
      • $ git remote add origin url
  • 로컬 저장소의 버전을 원격 저장소로 Push
    • $ git push <원격저장소이름> <브랜치이름>
      • 원격 저장소는 저장소의 버전(커밋)을 관리
  • 로컬 저장소의 버전을 원격 저장소로 Pull
    • $ git pull <원격저장소이름> <브랜치이름>
      • 원격 저장소로부터 변경된 내역을 받아와서 이력을 병합

에러사항

  • $ git commit 만 눌렀을때, commit 메시지 적고 esc누른다음 :wq! 적고 엔터누르기
    • E45: 'readonly' option is set (add ! to override)
      • :wq 뒤에 !가 없어서 에러났었음

명령어

  • git init
    • 로컬에서 새로운 프로젝트 시작
  • git clone url
    • 원격저장소 복제
  • git remote -v
    • 원격저장소 정보 확인
  • git remote add <원격저장소> url
    • 원격저장소 추가(일반적으로 origin)
  • git remote rm <원격저장소>
    • 원격저장소 삭제
  • git push <원격저장소> <브랜치>
    • 원격저장소에 push
  • git pull <원격저장소> <브랜치>
    • 원격저장소로부터 pull

push 실패

  • 로컬과 원격 저장소의 커밋 이력이 다른 경우 발생한 것이다.
    1. 원격저장소의 커밋을 로컬저장소로 가져오기(pull)
    2. 로컬에서 두 커밋을 병합 (추가 커밋 발생) ⇒ 동시에 같은 파일이 수정된 경우 merge conflict가 발생 ⇒ 브랜치
    3. 다시 GitHub로 push

gitignore

  • 버전 관리를 별도로 하지 않는 파일/디렉토리를 Git 저장소에 .gitignore 파일을 생성하여 해당 내용 관리
  • 작성 예시
    • 특정 파일: a.txt(모든 a.txt), test/a.txt(테스트 폴더의 a.txt)
    • 특정 디렉토리: /mt_secret
    • 특정 확장자: *.exe
    • 예외 처리: !b.exe
  • 이미 커밋한 것은 무시X ⇒ 미리 .gitignore를 설정하자

Branch

  • 독립적인 작업흐름을 만들고 관리
  • 주요 명령어
    • 브랜치 생성: (master) $ git branch {branch name}
    • 브랜치 이동: (master) $ git checkout {branch name}
    • 브랜치 생성 및 이동: (master) $ git checkout -b {branch name}
    • 브랜치 목록: (master) $ git branch
    • 브랜치 삭제: (master) $ git branch -d {branch name}
  • merge
    • 각 branch에서 작업을 한 이후 이력을 합치기 위해 merge 명령어를 사용
    • merge 시, 서로 다른 commit에서 동일한 파일을 수정한 경우 충돌이 발생할 경우
      • 직접 해당 파일을 확인하고 적절하게 수정 -> 직접 커밋 실행
  • branch를 바꿔서 commit하고 다시 되돌아가면 바꾼 후 commit한 것은 뜨지 않음
    • merge 과정 필요함
    • 그 후 바꿨던 브랜치 지워주면 깔끔해짐
  • merge conflict
    • 같은 파일 수정했을때
    • 충돌난 파일이 무엇인지 알고 싶다 → status
    • 충돌→파일 확인 후 수정→add, commit 과정
      • 메시지 없이 commit함 → 커밋메시지가 작성되어있음

Git Flow

  • Git을 활용하여 협업하는 흐름으로 branch를 활용하는 전략
  • 브랜치 만들기 → 작업 → 커밋 → GitHub로 브랜치를 push → Pull Request -(리뷰)→ merge

추가 정리

  • a.txt, b.txt 가 있는데, a.txt만 커밋하려고 했는데, git add. 을 해버렸다.
    • git restore --staged file
      • 터미널 메시지에 나와있음
  • 코드가 지워졌다.
    • git status 터미널 메시지
      • git restore file
      • 파일이 삭제된 사실을 없앤다
  • 커밋 메시지 잘못 입력
    • git commit --amend
    • 함부로 하지 않기 ⇒ 해시값이 달라짐
    • push 안 한 상태에서는 가능/push 한 이후는 하지말기
반응형

'개발 공부' 카테고리의 다른 글

Python_4  (0) 2023.02.06
Python_3  (0) 2023.02.06
Python_2  (1) 2023.01.29
Python_1  (0) 2023.01.23
Git/GitHub_1  (0) 2023.01.15

댓글