티스토리 뷰

개발냥이/etc

깃 매뉴얼(Git manual)_feat, SourceTree

데브캣_DevCat 2022. 8. 28. 19:59

 

💬 기본적으로 SourceTree를 기준으로 설명합니다.

Commit으로 버전관리 하기

  1. 프로젝트 만들기(영어로 특수문자 없이, 단어 연결시 -, _ 사용)
  2. 프로젝트를 Git이 관리하는 폴더로 만들기(깃 초기화, git initialize)
    1. New Tab
    2. Create
    3. 경로설정, 이름, 유형(Git) 설정, 원격저장소생성체크X
    4. 생성하기
    5. 폴더에 .git 생김(숨김파일)
  3. 커밋하기
    1. 커밋 누르기
    2. 스테이지에 올리기
    3. 커밋메시지 작성 후 커밋
  4. Git프로젝트 없애는 방법
    1. .git 파일 삭제

원격 repo 사용하기

  • 로컬 repo -> 원격 repo : push
  • 원격 repo -> 로컬 repo : pull
  • 원격 repo에 있는 것을 로컬에 단순히 다운로드하는 개념 : 클론(clone)
  • 충돌 최소화 꿀팁! Pull, Commit, Push 순서
  1. 깃헙 > repository생성
  2. 깃헙원격repo와 로컬repo연결(Tracking)
    1. 설정
    2. 원격(이름 : origin, URL : repository url)
  3. 브랜치 우클릭 > 이름변경 > master > main 으로 바꾸기
  • 클론
    • 가져올 폴더 만들기(목적지 경로)
    • 클론한 repo 링크 복사(소스링크)

Git으로 협업하기

1. 작업할 것 정하기(issue 할당)

  • 깃헙 issues탭, 이슈트래킹 툴(jira trello, youtrack)
  • 이슈번호 #1, #2, #3
  • 커밋메시지에 이슈번호 추가하면 링크 생김

2. 각자 작업(branch)

  • 커밋할 내역 있는지 확인(없어야 됨)
  • 브랜치 생성
    • main브랜치에서 우클릭
    • 브랜치
    • 새브랜치 (예시) feature/2(이슈번호)_jjigae, 명시된커밋, 새브랜치 체크아웃 체크 확인
    • 브랜치 생성
  • 브랜치 옆 o 가 현재 나의 위치. 다른 브랜치 더블클릭하면 그 브랜치로 체크아웃됨(현재 작업할 브랜치를 선택하는 것을 체크아웃이라고함)
  • 브랜치 삭제(모든 작업, 수정내역 사라짐 주의, 파일도 원상복구됨)
    • 삭제할 브랜치 외 브랜치로 체크아웃
    • 우클릭 삭제
    • 강제삭제 체크 후 확인

3. 병합(merge)

  • main 브랜치 체크아웃
  • 병합 누르고 옵션 체크(즉시 커밋 병합, 메세지 첨부, fast-forward)
    • 가장 최신 커밋 병합하면 그 아래 커밋들도 같이 따라감
  • 브랜치 삭제
  • 병합충돌
    • 같은 파일을 각기 다른 브랜치에서 수정해서 병합하게 되면 충돌이 일어남
    • 병합충돌 메시지 확인
      • <<< HEAD : 현재 깃에서 가리키고 있는 내용
      • ==== : 경계를 사이에 두고 위와 아래가 충돌중
      • >>>> : 현재 커밋을 시도하여 충돌된 내용
    • 내용 수정해서 다시 커밋(새로운 내용 추가하지 않기)

4. 병합 전 작업(Pull Request, PR)

  • 병합 전 코드리뷰
    • 깃허브 해당 브랜치로 이동
    • Pull Request 클릭 후 진행
      • 내용 수정이나 추가한 후 커밋 푸시하면 자동으로 내역이 Pull Request에 따라붙음
    • 완료되었으면 Merge pull request 클릭 > confirm merge
    • Delete branch
  • 다른 사람의 repo에 PR하기
    • issues 확인
    • Fork 해오기
    • Clone 하기
    • 브랜치 생성
    • 작업 후 커밋 푸시
    • 깃허브에 가서 PR (Allow edits by maintainers 체크)

Commit관리

  1. Commit 수정 : 반드시 나만 작업하는 특정 브랜치 하나에만 적용!
    • amend(최신 commit 수정하기)
      • 파일상태
      • 커밋옵션
      • 마지막 커밋 정정
    • push 한 것 수정
      • 도구 > 옵션 > Mercurial > 강제 푸시 가능 체크
  • revert, reset
    • revert : 커밋이 변경되었다는 것을 알리면서 되돌리기
      • 되돌아가려는 커밋에서 우클릭
      • 커밋되돌리기
    • reset : 해당 커밋 이후 삭제
      • 되돌아가려는 커밋에서 우클릭
      • 이 커밋까지 현재 브랜치를 초기화
  • stash(변경사항 임시 보관하기) : 커밋하기 애매하고 다른 작업을 해야할 때?
    • 저장할 작업 선택하고 스태시 > 왼쪽 스태시 탭으로 이동함
    • 가져올 때는 왼쪽 스태시 탭에서 우클릭
    • 스태시 적용
    • 삭제

코드리뷰 관련 자료

Google코드리뷰가이드문서

Google코드리뷰가이드문서 한글ver

코드리뷰 in 뱅크샐러드

코드리뷰 in pandas

코드리뷰 in 우아한테크코스 프로젝트

gitignore

CLI 명령어

  • 새로운 저장소 만들기(git관리할 폴더 안에서)
git init
  • 로컬 저장소 복제
git clone /로컬/저장소/경로
  • 원격 저장소 복제
git clone 사용자명@호스트:/원격/저장소/경로
  • 작업의 흐름
    • Working directory : 실제 파일
    • Index : 준비영역(stage)
    • Head : 최종 확정본(commit)
    • https://rogerdudler.github.io/git-guide/img/trees.png
  • 커밋하기
    • 인덱스에 추가(add stage)
      git add <파일 이름>
    • git add *
    • HEAD에 반영(commit)
    • git commit -m "커밋메시지
  • 원격 저장소와 연결
  • git remote add origin <원격서버주소>
  • 변경내용 원격 저장소에 반영하기(push)
    • 다른 브랜치를 발행하려면 master의 이름을 바꾸면 됨
      git push origin master
  • 가지치기 : 저장소를 새로 만들면 기본적으로 master 가지가 생성됨
    • "feature_x" 라는 이름의 브랜치 생성 후 갈아타기
      git checkout m-b feature_x
    • master 가지로 돌아오기
      git checkout master
    • 브랜치 삭제
      git branch -d feature_x
    • 새로 만든 가지를 원격 저장소로 전송하기 전까지는 다른 사람들이 접근할 수 없음
      git push origin <가지 이름>
  • 갱신과 병합
    • 로컬 저장소를 원격 저장소와 맞춰서 갱신(pull)
      git pull
    • 다른 브랜치의 내용을 현재 가지에 병합하기(merge)
      git merge <가지이름>
    • 병합 충돌(merge conflict)
      • 변경내용 비교
        git diff <원래가지> <비교 대상 가지>
      • 파일 병합하기
        git add <파일 이름>
  • 로컬 변경 내용 되돌리기
    • 변경 내용을 변경 전 상태(HEAD)로 되돌리기
      git checkout -- <파일 이름>
    • 하드리셋(로컬의 모든 변경내용과 확정본 포기)
      ``
      git fetch origin git reset --hard orijin/master
  • 꼬리표 달기
    • 1.0.0 꼬리표 달기
      git tag 1.0.0 1b63ffdw
    • - 1b63ffdw 는 확정본식별자로서 git log 명령으로 알 수 있음
  • 유용한 힌트
    • git 내장 GUI
      gitk
    • 콘솔에서 git input을 컬러로 출력하기
      ``
      git config color.ui true
      ```
    • 이력(log)에서 확정본 1개를 딱 한 줄로만 표시하기
      git config format.pretty oneline
    • 파일을 추가할 때 대화식으로 추가하기
      git add -i
    • 관련자료
      Pro Git
    • A Visual Git Reference
반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함