
버전: 유의미한 변화
패치: 시급한 문제점 해결, 사소한 버전 변경
버전 관리 시스템을 이용하면, 버전관리는 물론 변경점 관리, 백업 및 복구, 협업에 큰 이점이 있다.
버전관리는 변경 내역을 기억하고, 특정 시점의 버전으로 되돌릴 수 있다는 특징을 바탕으로 협업과정에서 코드를 쉽게 나누고 개발할 수 있도록 도와준다.

git config --global user.name <사용자이름>git config --global user.email <email>git config --global --listinit, add, commit ...git init : 현재 위치에서 git 초기화
.git 폴더는 숨김 폴더이므로 -a옵션으로 조회해야함.)git bash를 활용하면 현재 폴더가 git에 의해 관리되는지 여부를 확인 할 수 있다.

잘못 설정된
git init은
rm -rf .git로 삭제해주면 된다. 아니면 탐색기에서 숨김 폴더를 수동으로 삭제할 수 있다.
git status: 현재 상태 확인

git add <파일>: staging .를 사용하면 현재 디렉토리 전체를 대상으로 한다.

git commit -m '<메시지>': commit (-am: 한번 add된 파일을 스테이지에 올리지 않고 바로 commit)

git status로 커밋이 이뤄진 것을 확인할 수 있다.
git log: 커밋 log 확인 (--oneline: 요약하여 확인)

파일을 수정한 뒤 다시
git staus로 확인하면,add했던 파일의 변경을 추적하고 있음을 알 수 있다.
git diff: 변경 부분 확인
다시 커밋하면

git rm --cached <파일>--soft: 해당 커밋이후 다음 커밋 직전 staging 상태로 복구

--mixed: 해당 커밋 이후 파일 변경이 반영된 상태, 하지만 add는 하지 않은 상태로 복구.
--hard: 해당 커밋 직후 상태로 복구(해당 커밋 이후 파일 변경은 반영 안됨)


git checkout <commit id> : 해당 커밋으로 체크아웃

체크아웃 후 STACK로 새로 커밋 해보았다.

git switch -c <이름> : 새로운 브랜치를 생성하기
git switch 이름 : 해당 브랜치로 이동

git branch -l : 브랜치 리스트 확인
.gitignore 파일에 추적관리 제외할 파일을 추가하여 관리할 수 있다.

git에 의해 추적되지 않음을 볼 수 있다.
- 프로젝트 폴더에서
git init실행- 코드 작성
- github에 업로드할 파일들을 선택:
addcommit수행- github에서 프로젝트 저장소 생성하기
- 프로젝트 폴더에 github 저장소 주소 설정:
remote add origin <주소>,push실행(처음에는git push -u origin main)


로컬과 달리, 온라인 커밋 메시지를 수정하는 것은 매우 복잡하고 권장되지 않는 방법이다. 따라서 7번 과정을 수행하기 전에 주의를 기울여야한다.
cloning을 위해 새로 폴더를 만들면 이중으로 폴더를 생성하게 된다. 참고하자
git pull 로 원격저장소에서 파일을 받아올 수 있다.
main에서 dev 브랜치를 생성해보았다.

feature 브랜치를 dev에서 생성하면 feature브랜치는 dev에 merge 해야한다.
1. New Features
2. Bug Fixes
3. Docuentation
4. Dependency Upgrades
5. Contributors
