티스토리 뷰

Git

Git-Github 자료 정리

HoSeongYu 2022. 2. 10. 17:10

형상관리 정의

  • SCM(Software Configuration Management) - 형상관리
    소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것
  • VCS - 버전관리시스템
  • CVCS - 중앙집중 버전관리시스템 -> 중앙에서 버전관리
    ex) SVN
  • DVCS - 분산 버전관리시스템 -> 각 로컬에서도 버전으로 관리
    ex) Github

Git 명령어

  1. git init : 로컬작업영역 생성
  2. git stauts : 변경감지 확인
  3. git add : 인덱스 영역에 폴더(tree) 생성 -> 신규 or 변경 파일 저장 + 기존 폴더(tree) 해쉬값 저장
  4. 최초 설정 필요(사용자정보)
    git config --global user.name "이름"
    git config --global user.email "이메일"
  5. git commit : 헤더영역에 버전 기록
    ex) git commit -m "첫번째 커밋" -> -m : message
  6. git reset : 복구하기
    git reset --soft "해쉬값" : 헤더영역의 버전을 날림 -> 커밋로그변경시 사용
    git reset --mixed "해쉬값" : 인덱스, 헤더영역의 버전을 날림 -> 작업영역의 내용 변경이 필요시 사용
    git reset --hard "해쉬값" : 로컬작업영역, 인덱스영역, 헤더영역의 버전을 날림 -> 이전상태로 돌아가고 싶을때 사용
  7. git reflog : log확인
  8. git commit --amend -m "~" : 최종log 변경
  9. git tag "tag명" : tag 달기
  10. git push -tags origin matser : github에 태그와 함께 push하기

Branch 관련 명령어

  1. git branch : branch 확인
  2. git branch topic : topic라는 branch 생성
  3. git checkout topic : branch topic 으로 이동
    • git checkout -b topic : topic branch 생성하고 이동을 동시에 진행
  4. git merge topic : topic branch를 -> 현재 브랜치로 머지한다.(checkout master로 topic이 merge된다.)
    • fast-forward merge : 형상이 같을 때
    • 3way merge : 형상이 다를 때
      • 3way merge 사용시 : esc -> :wq (저장 후 종료)
      • 충돌했을때 : 직접 수정 후 git add -> git commit 진행
  5. git merge --no--ff topic/join : merge bracnh 'topic/join'의 log를 남길때 사용
  • Merge시 Commit의 순서로 history가 남는다
    Merge된 시간순으로 log를 남기기 위해서는 rebase 사용이 필요
    1. git checkout topic : merge할 브랜치로 위치시킨다.
    2. git rebase master : topic branch에 master를 가져온다.
    3. git checkout master : master로 위치시킨다.
    4. git merge --no--ff topic : master에 topic을 merge시킨다.

Rebase 관련 명령어

  1. git rebase -i HEAD~3 : 현재 위치에서 3개의 log 관련 수정
    d : drop
    s : squash (찌그러트림) -> 항상 pick 아래에 있어야한다.
    r : log 수정
    esc -> :wq 저장 후 종료

Github(remote) 관련 명령어

  1. git remote add origin https주소 : 클라우드 연결
    git remote rm origin : 연결삭제
  2. git remote -v : 연결 확인
  3. git ls-remote : 연결 확인
  4. git push origin master : 파일 업로드 + 병합(merge)
  5. git pull origin master : 파일 다운로드 + 병합(merge)
    git clone https주소 : 클라우드 연결 + 파일 다운로드 + 병합
  6. git fetch origin : 모든 브랜치 다운로드
  7. git checkout -b topic origin/topic : 브랜치 생성 및 병합(merge)
  8. git push -f origin topic : github에 올린 로그를 현재 로그로 덮어씌우기(PR요청했을때와 merge순간의 master,dev log가 다를때)
  • rebase squash 기능 바로 사용하기 (브랜치의 Commit을 log 하나로 남기기)
    1. git checkout master
    2. git merge --squash topic
    3. git status
    4. git commit -m "message"
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
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 31
글 보관함