branch
branch를 만드는 이유
- main 브랜치를 완전하게 돌아가는 코드로 유지하기 위해.
- 불필요한 충돌을 막기 위해.
branch를 만들지 않고 main 코드에 모든 작업을 진행하면 충돌이 발생하는 등 문제가 발생할 수 있음.
- 원할한 코드 리뷰 진행을 위해.
실습 진행

윈도우 환경에서는 Linux 명령어 사용이 어렵기 때문에 git bash로 진행하자.
- mkdir (폴더이름) : 폴더를 생성한다.
mkdir gitPractice2
- cd (폴더이름) : 폴더로 이동한다.
cd gitPractice2
- git init : 현재 폴더(프로젝트)에 git을 사용하겠다.
- touch : 빈 파일을 만드는 명령어.
- ls : 현재 폴더에 있는 파일 목록을 조회.
touch 명령어를 이용해 파일을 만들고 ls를 이용해 조회해보자.


현재 Working directory에는 5개의 추적되지 않는(untracked files) txt파일이 있다.

- git add (파일이름) : 파일을 commit 대기시켜 준다.
즉 add를 사용해서 commit 대기시켜준 파일만이 commit 명령어를 사용했을 때 저장소에 등록된다.
이때 add된 파일들이 있는 가상의 저장소를 Staging Area라고 한다.


- git commit : 현재 Staging Area에 있는 모든 변경사항을 기록한다.

- git log : 현재 브랜치의 커밋 기록 확인.
git commit -m "1"에서 따옴표 안에 들어간 부분이 커밋 로그에 들어가게 된다.


파일 변경의 경우
- 새로 생성되면 untracked files로 처리가 되는데 파일이 변경되면 어떻게 될까?
- echo "1" > 1.txt 명령으로 1.txt 파일 내부를 변경해보자.

1.txt는 커밋을 해서 현재 변경사항이 추적되고 있기 때문에 untracked 파일에 없다.

- git branch : 현재 Local git repogitory에 있는 브랜치 확인.
현재 main브랜치 하나만 있다.

- git branch (브랜치명) : 브랜치를 하나 만든다.

현재 위치한 브랜치는 main.
브랜치를 만든다는 것은 현재 커밋로그로부터 시작하는 새로운 기록을 만든다는 것.
- git checkout (브랜치명) : 해당 브랜치로 이동한다.
git branch 명령어는 브랜치를 생성하지만, 이동하는 명령은 아니다.

- git status로 상태를 확인하고, git add와 git commit을 사용해서 local저장소에 올려주자.

- git log를 사용하면 잘 됐는지 확인 가능하다.


방금의 작업은 test브랜치에서 이뤄졌기 때문에, main브랜치로 이동하면 커밋로그를 볼 수 없다.
- main 브랜치에서 커밋을 해보자.
add와 commit 명령어를 사용.
git log를 사용해 확인해보면 잘 되었다는 것을 알 수 있다.


노란 형광팬이 쳐진 버튼을 주목하자.

폴더를 불러온 후 버튼을 누르면 브랜치를 볼 수 있다.

역시 형광팬 쳐진 부분을 만지면 git 열람이 가능하다.