보라코딩
Day 5, Git 본문
필요 프로그램 설치
- 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 |