일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- SQL
- Java
- Excel
- Python
- django
- math
- GIT
- Mac
- PANDAS
- matplotlib
- string
- PostgreSQL
- Tkinter
- Google Excel
- c#
- hive
- PySpark
- gas
- Github
- numpy
- 파이썬
- Google Spreadsheet
- array
- Kotlin
- list
- Redshift
- Apache
- google apps script
- dataframe
- Today
- Total
달나라 노트
13. Branch 생성 본문
Branch 생성
Branch 테스트를 위해 bran이라는 디렉토리를 만들고 이 디렉토리에 새로 init을 할 것입니다.
1. git init
bran 디렉토리에 git init 실행
2. vim f1.txt
파일 내용으로 a 입력
3. git add f1.txt
4. git commit -m '1'
5. vim f1.txt
파일 내용으로 b 입력
6. git commit -am "2"
이전에 add가 된 이력이 있는 파일은 자동으로 add합니다.
(이전에 add된 적이 없는 파일은 -a 옵션에 의해 자동으로 add되지 않습니다.)
7. git log
2 개의 commit이 생성됨.
이 과정에서 우리가 작업하고 있던 소스코드는 그대로 주면서 고객사에게 제공될 특별한 기능을 추가해야하는 경우, 또는 서버에 반영하기 전에 테스트를 하는 경우 Branch를 사용할 수 있습니다.
8. git branch
위 명령어는 현재 branch list를 띄워주고 *를 통해 내가 현재 있는 Branch가 무엇인지 보여줍니다.
지금은 master branch만 있을 것이기 때문에 아래처럼 표시될 것입니다.
* master
master라는 이름은 git을 사용하는 그 순간부터 기본 branch를 사용하게 되는데 이 이름이 master입니다.
마치 약속처럼 정해지는 branch이죠.
9. git branch exp
위 명령어는 exp라는 이름의 branch를 생성하는 명령입니다.
(보통 expepriment라는 의미로 branch의 이름을 exp라고 짓습니다.)
10. git branch
exp
* master
위처럼 exp라는 branch가 생성되었음을 확인할 수 있습니다.
또한 현재 내가 타겟으로 하고 있는 branch는 *표시가 된 master인 것을 알 수 있죠.
11. git checkout exp
체크아웃 명령어는 대부분의 버전관리 시스템에 있는데 위 내용은 '현재 branch에서 체크아웃하고 exp 브랜치로 가겠다.'라는 뜻으로 받아들이면 됩니다.
12. git branch
* exp
master
보다시피 현재 존재하는 branch가 master에서 exp로 옮겨진 것을 * 표시를 통해 알 수 있습니다.
13. ls -al
위 명령어를 통해 f1.txt 파일이 exp branch에도 존재하는걸 확인합니다.
14. git log
위 명령어를 통해 exp branch에도 master branch에서 만든 2개의 commit이 있음을 확인합니다.
이렇듯 exp 브랜치를 생성하게 되면 생성되는 branch는 생성 직전 자신의 부모가 되는 branch의 상태를 완전히 복사한 채로 생성됩니다.
15. vim f1.txt
exp branch에서 vim f1.txt 파일에 c라는 내용을 추가합니다.
16. git add f1.txt
git commit -m '3'
git log
위처럼 exp branch에서 수정한 f1.txt파일을 commit하고 log를 봅니다.
정상적으로 3번 commit이 확인되는걸 볼 수 있습니다.
17. git checkout master
master branch로 이동
18. git log
3번 commit이 없음.
19. cat f1.txt
exp branch에서 추가한 c라는 글자가 내용에 없음.
20. git checkout exp
다시 exp branch로 간 후 f1.txt파일을 보면 c라는 내용이 제대로 보임.
이렇게 동일한 파일이라도 내가 현재 어느 branch에 있는지에 따라 파일의 내용이 다르게 보입니다.
21. vim f2.txt
git add f2.txt
git commit -m '4'
exp branch에서 f2.txt를 생성하고 commit합니다.
이제 exp branch에는 f2.txt파일이 생성되었습니다.
그러면 만약에 master branch로 이동을하면 f2.txt는 과연 파일 탐색기에 그대로 남아있을까요?
정답은 master branch로 이동시 exp branch에만 있던 f2.txt 파일은 더 이상 안보이게 됩니다.
'Github' 카테고리의 다른 글
15. Branch merge (0) | 2021.01.15 |
---|---|
14. Branch 정보 확인 (0) | 2021.01.15 |
12. Branch (0) | 2021.01.15 |
11. SSH key (github, git clone, git ssh key, ssh key gen) (0) | 2021.01.15 |
10. 하나의 원격 저장소, 여러 개의 로컬 저장소 (git pull, git push) (0) | 2021.01.15 |