① 유저이름,이메일 설정
git config --global user.name *your_name* #이름설정
git config --global user.email *your_email* #이메일.
git config --list #정보확인.
등록하고 나면 repo를 만들자.

처음에 이렇게 뜰거임. 각각 의미를 알아보자
git init: git 환경을 초기화
git add: 원격저장소에 add함 (git add . 하면 모두 업로드됨)
git commit -m "first commit": 메세지와 함께 코드 변경 커밋
git branch -M main:-M은 이름을 변경한다는 옵션으로-M명령어로 브랜치 이름을 main으로 하겠다는 것.
git remote add origin https://github.com/2JAE22/developer-git-practice.git: git local repo에 remote repo를origin이라는 이름으로 등록함
git push -u origin main:origin이라는 원격저장소의 'main'브랜치에 업로드 시킴.
-u는 --set-upstream 으로 local repo에 origin 을 원격저장소로 등록한다는 의미.-> 최초 한번만 실행되며 이후에는git push origin branch_name하면됨.
새로운 브랜치 생성
git branch new_branch_name
새로운 브랜치 생성 후 해당 브랜치로 전환
git checkout -b new_branch_name
git switch -c new_branch_name
Remote repo 에도 생성한 브랜치를 반영할려면
git push origin new_branch_name
ex)
//dev 브랜치를 만들어 해당 브랜치로 이동
git checkout -b dev #새로 만듦
git push origin dev #로컬의 dev브랜치를 origin 이라는 원격저장소에 push 하겠다. -> 이제 원격에도 dev 브랜치가 생김.
//브랜치가 잘 생성되었는지 확인
git branch
브랜치 목록확인
git branch
브랜치 목록과 각 브랜치의 최근 커밋 확인
git branch -v
브랜치 삭제
git branch -d 삭제할 브랜치 이름
git branch -D # 병합하지 않은 브랜치를 강제삭제.
브랜치 전환
git switch 브랜치이름
git checkout 브랜치이름
브랜치 병합
main브랜치로 dev브랜치가 병합할때)
-> merge 하기 위해서는 먼저 병합할 브랜치로 이동 git switch main
git checkout main #병합하고 남을 브랜치
git merge dev #병합하고 없어질 브랜치
병합을 취소하고 이전 커밋으로 되졸리기
git reset --hard 커밋넘버
ㄹ=로그에 모든 브랜치를 그래프로 표현
git log --branches --graph --decorate
아직 commit 하지 않은 작업을 스택에 임시로 저장
git stash
Git workflow

프로젝트 전체 진행은 다음과 같다.
Local에서 새로운 브랜치를 생성(dev)하고 작업이 끝나면 Remote Repository 로 Push 한다.
그리고 Project Upstream Repository에 반영(merge)될 수 있도록 Pull Request 한다.
만약 작업하던 중간에 Remote upstream 에 업데이트가 생긴다면 Local 로 pull 받아주어야 한다는 것을 잊지 말자!
원격저장소 목록
git remote #원격저장소 목록
git remote -v # 원격저장소 목록과 URL정보를 같이 보여줌
현재 작업 디렉터리 상테
git status
현재 작업중인 변경사항 임시 저장하고 작업 디렉터리 깨끗하게
git stash
fetch 와 pull의 차이점
git fetch : 원격 저장소의 최신 변경 사항을 가져오기만 함
git pull = git fetch + git merge -> 원격저장소에서 변경사항을 가져온 뒤,이를 자동으로 로컬 브랜치에 병합함
🤔 굳이 git fetch가 있는 이유?
👉 git fetch는 더 더 세밀한 제어 및 안전한 작업흐름 때문에 존재
git pull이 자동으로 병합해주어서 편리하지만, 자동병합이 문제를 일으킬 수 있음.
git 기록보기
git log
****
****
****