보라코딩

Day 5, Git 본문

개발자가 되었다?

Day 5, Git

new 보라 2023. 8. 22. 13:08

필요 프로그램 설치

  • Microsoft - windows terminal
  • VSC 설치
  • git 설치
  • sourcetree 설치 : git gui tool (bucket, Mercurial 선택 안함)
    • 그밖에 GitKraken, fork도 좋으나 일부 기능 유료임
  • notepad++ 설치 (git과 관련은 없음)

Git 명령어

  • ctrl + shift + ` : VSC 에서 terminal open
  • touch im.md : md파일 추가됨
  • git config --list --global : 유저네임과 이메일 등록된 것 보여줌
  • git config --global user.email "abcd@abc.co.kr"
  • git init : .git 폴더 만들어줌(깃 관련 파일)
  • git status : 현재 상황 확인
  • git add . : 전체 스테이크에 올리기
    (git add -h : help로 사용할 수 있는 것 보여줌)
  • git commit -m "add im.md"
  • git commit -am "add xyz" : add와 commit 메세지 동시에!
  • git branch : 작업중인 브랜치에 * 표시
  • git log --oneline

SourceTree

  • create = git init (폴더 생성과 동시에 .git 파일도 생성됨)
  • History = git log
  • 도구-옵션 : 사용자정보 확인 가능

add 안하고 바로 commit 가능! (처음 만든 파일은 사용 불가!)

git commit -a
i
edit im.md

add text 쓰기
esc
shift랑 콜론 : 같이 누르기
wq

사용한 명령어 보기

  • history > cmd.txt
  • explorer .

되돌아가기

  • git restore im.md : commit 안했는데 저장은 했을 때 이전으로 돌아가기
  • git restore .
  • Discard : 커밋하기 전에 사용 가능
  • Reset : 커밋 후에 사용
    • mixed / soft : 커밋하지 않은 변경사항 상태로 돌려줌
    • hard : 되돌릴 수 있는 리셋이다!
  • Revert : 이력은 남겨 놓으면서 이전으로 한단계씩 돌아갈 수 있음

다시 또 되돌아가기

git reflog : reset으로 되돌린 것까지 다 볼 수 있음 (.git 내에 갖고 있음)
git reset --hard HEAD@{1} : 바로 이전 단계로 돌아가기

참고

  • git init 있는 상태에서는 git clone 불가능!!
  • commit 단위도 중요!
  • 더블클릭해서 오른쪽마우스 클릭만 해도 복사가 된다.
  • 붙여넣기는 해당 위치에 오른쪽 마우스
  • CRLF / LF 검색해보기
  • 깃허브 master -> main 변경됨 (우린 아직 마스터 사용)
  • 서브모듈 : 고급 기능으로 추후 공부해보기


그밖의 기능

  • reset
    • soft : 스테이징영역에 있음
    • mixed : 스테이징영역에 올라가지 않음
  • revert (주의!! 전단계를 선택하면 안됨! 돌아가고 싶은 것을 클릭하는 게 아님)
    • 소스트리에서 오른쪽마우스 커밋되돌리기 (revert)
    • revert가 더 안전함. 이력 남기면서 되돌려서
  • fork : 복제해서 작업하고 리뷰 요청 가능하게 함

브랜치

  • git branch gaeun(브랜치이름) : 브랜치 생성
  • git branch : 브랜치 다 보여주기
  • git checkout gaeun : 브랜치 변경
  • git checkout 803a1df
    • 꼭 체크아웃을 브랜치에서만 사용하지 않고
    • 과거 코드 보고 싶을 때 돌아가는 것도 가능함 (원복되는 건 아님,헤드는 이동함)
  • git switch -c test002 : 브랜치 생성과 동시에 이동!
  • git branch -d gaeun : 브런치 삭제
  • git branch -D gaeun : 브런치 강제 삭제
  • 마스터와 똑같은 위치에 있는 브랜치는 삭제 가능함
  • git checkout -b test002 : 브런치 만들면서 이동

병합

  • ff (fast forward) / 3way
  • git merge test001
    • 병합하고 싶은 브랜치(마스터)로 가서 명령어에는 머지할 브랜치(테스트001)를 적어줌
    • merge 전으로 돌아가려면 git reset hard

Conflict

  • merge 후 충돌 해결 후 add, commit 해야함

cherry-pick

  • touch c01 c02 c03 : 파일 세개 만들기
  • 이후 add, merge
  • git log --oneline --all : 이걸로 가져올 것 확인해서 복사
  • git cherry-pick e2a2d82 0a5500f : 두개 체리픽으로 가져옴

rebase

  • git checkout rebase001
  • git rebase master : master가 베이스고 rebase001 이 위로 올라감
  • 충돌이 난다면 계속 해결해줘야 함
  • 충돌 후 add, commit하고
  • git rebase continue : 종료해줘야함!!!!

원격저장소 관련

  • git fetch : 원격저장소에 있는 것 가져오기(가져올 것이 있는지 확인)
  • git pull : 코드 가져오기
  • git remote -v : 원격저장소가 있는지 확인
  • git remote add originhttps://github.com/bora353/mireroTest.git01
  • git branch -M main
  • git push -u origin main : git push 해도 알아서 원격으로 메인에

stash

  • 저장만 하고 스태시 누르면 파일에는 없지만 스태시 클릭하면 기록볼 수 있음
  • 다시 필요할 때 스태시 적용

git ignore

*.exe
*/debug/*
파일상태에서 무시된파일에서 선택한 것은 가능하게

Git Game

'개발자가 되었다?' 카테고리의 다른 글

Day 7  (0) 2023.08.24
Day 6, 반도체공정  (0) 2023.08.23
Day 4, 사내 시스템 교육  (0) 2023.08.21
Day 3, 산업안전보건교육  (0) 2023.08.18
Day 2  (0) 2023.08.17