branch
branch를 만드는 이유
- main 브랜치를 완전하게 돌아가는 코드로 유지하기 위해.
- 불필요한 충돌을 막기 위해.
branch를 만들지 않고 main 코드에 모든 작업을 진행하면 충돌이 발생하는 등 문제가 발생할 수 있음.
- 원할한 코드 리뷰 진행을 위해.
실습 진행
![](https://velog.velcdn.com/images/rlawogus73/post/f974acc1-8d23-4e1a-9bae-a231203c8eab/image.png)
윈도우 환경에서는 Linux 명령어 사용이 어렵기 때문에 git bash로 진행하자.
- mkdir (폴더이름) : 폴더를 생성한다.
mkdir gitPractice2
- cd (폴더이름) : 폴더로 이동한다.
cd gitPractice2
- git init : 현재 폴더(프로젝트)에 git을 사용하겠다.
- touch : 빈 파일을 만드는 명령어.
- ls : 현재 폴더에 있는 파일 목록을 조회.
touch 명령어를 이용해 파일을 만들고 ls를 이용해 조회해보자.
![](https://velog.velcdn.com/images/rlawogus73/post/b2b9934b-2a0c-4e34-8352-59114e783d4c/image.png)
![](https://velog.velcdn.com/images/rlawogus73/post/36c2589d-51c9-4e92-9736-67e5dbb85aea/image.png)
현재 Working directory에는 5개의 추적되지 않는(untracked files) txt파일이 있다.
![](https://velog.velcdn.com/images/rlawogus73/post/7d00e15c-36bd-4434-bcc7-900bb5f5cc60/image.png)
- git add (파일이름) : 파일을 commit 대기시켜 준다.
즉 add를 사용해서 commit 대기시켜준 파일만이 commit 명령어를 사용했을 때 저장소에 등록된다.
이때 add된 파일들이 있는 가상의 저장소를 Staging Area라고 한다.
![](https://velog.velcdn.com/images/rlawogus73/post/b109b3c0-6211-4d63-a504-8cb24e5d7054/image.png)
![](https://velog.velcdn.com/images/rlawogus73/post/52919a6a-fcc9-4613-969a-cff3e68d2061/image.png)
- git commit : 현재 Staging Area에 있는 모든 변경사항을 기록한다.
![](https://velog.velcdn.com/images/rlawogus73/post/fa6aed3b-2a8a-4d92-a4ec-d2057dcc511e/image.png)
- git log : 현재 브랜치의 커밋 기록 확인.
git commit -m "1"에서 따옴표 안에 들어간 부분이 커밋 로그에 들어가게 된다.
![](https://velog.velcdn.com/images/rlawogus73/post/2b5ae235-454f-4845-a8a2-53c246fc9d6c/image.png)
![](https://velog.velcdn.com/images/rlawogus73/post/1e22ac25-6ab7-4be1-99d6-309af176323b/image.png)
파일 변경의 경우
- 새로 생성되면 untracked files로 처리가 되는데 파일이 변경되면 어떻게 될까?
- echo "1" > 1.txt 명령으로 1.txt 파일 내부를 변경해보자.
![](https://velog.velcdn.com/images/rlawogus73/post/8b4a7e9f-c731-415a-8db4-bbb7d67ecb2f/image.png)
1.txt는 커밋을 해서 현재 변경사항이 추적되고 있기 때문에 untracked 파일에 없다.
![](https://velog.velcdn.com/images/rlawogus73/post/44cc2ff3-0ab7-4cd5-abfd-6430831b80cc/image.png)
- git branch : 현재 Local git repogitory에 있는 브랜치 확인.
현재 main브랜치 하나만 있다.
![](https://velog.velcdn.com/images/rlawogus73/post/0a481ba0-b16b-4dce-bfbe-0eb6259221fe/image.png)
- git branch (브랜치명) : 브랜치를 하나 만든다.
![](https://velog.velcdn.com/images/rlawogus73/post/281345dc-91dd-4311-9077-51cff05a7ea3/image.png)
현재 위치한 브랜치는 main.
브랜치를 만든다는 것은 현재 커밋로그로부터 시작하는 새로운 기록을 만든다는 것.
- git checkout (브랜치명) : 해당 브랜치로 이동한다.
git branch 명령어는 브랜치를 생성하지만, 이동하는 명령은 아니다.
![](https://velog.velcdn.com/images/rlawogus73/post/2eefa04a-8b44-4e80-a9fb-3f8bc2b20b07/image.png)
- git status로 상태를 확인하고, git add와 git commit을 사용해서 local저장소에 올려주자.
![](https://velog.velcdn.com/images/rlawogus73/post/ef85b096-41ec-47ba-a929-a0faf7a0d8ea/image.png)
- git log를 사용하면 잘 됐는지 확인 가능하다.
![](https://velog.velcdn.com/images/rlawogus73/post/d2a4a37d-ed86-4e86-9aa7-a54213267f45/image.png)
![](https://velog.velcdn.com/images/rlawogus73/post/e0d4e6bf-ec14-4c40-b238-ddf20e458b98/image.png)
방금의 작업은 test브랜치에서 이뤄졌기 때문에, main브랜치로 이동하면 커밋로그를 볼 수 없다.
- main 브랜치에서 커밋을 해보자.
add와 commit 명령어를 사용.
git log를 사용해 확인해보면 잘 되었다는 것을 알 수 있다.
![](https://velog.velcdn.com/images/rlawogus73/post/1a353840-2544-44d7-be26-2bfc2b6a80a6/image.png)
![](https://velog.velcdn.com/images/rlawogus73/post/4b204a66-47d0-45a0-9031-570d45137e16/image.png)
노란 형광팬이 쳐진 버튼을 주목하자.
![](https://velog.velcdn.com/images/rlawogus73/post/6695ad14-9fcc-441e-96ab-b8bc46fb546c/image.png)
폴더를 불러온 후 버튼을 누르면 브랜치를 볼 수 있다.
![](https://velog.velcdn.com/images/rlawogus73/post/0caef975-760e-4c3a-894d-31c811705ef6/image.png)
역시 형광팬 쳐진 부분을 만지면 git 열람이 가능하다.