글 작성자: juyoungit

교재에서 제시된 시나리오 #1에 대한 실습을 진행해 보도록 하겠다.

1. 디렉터리를 생성 및 .git 디렉터리를 생성

다음과 같이 branch_ex3 라는 디렉터리를 생성하고 그 후 git init 명령을 입력하여 .git 디렉터리를 추가한다. 여기서 cd 명령을 사용할 때 뒤에 적은 !$ 표현이 보이는 데 이 표현의 의미는 "이전 명령어의 마지막 Argument" 라는 의미이다.

이 상태에서 git branch를 입력해보면 다음과 같이 디렉터리 생성 후 아무런 저장된 내용이 없기 때문에 branch 가 없는 것을 확인할 수 있다.

2. 새로운 소스파일을 생성 후 add, commit

다음과 같이 vim을 실행하여서 다음과 같이 간단한 덧셈연산을 수행하는 cal.c 파일을 생성했다.

cal.c 소스코드, 간단한 덧셈연산을 하는 프로그램
cal.c 소스파일 작성 후 저장한 모습
git add 하기전 git status 입력 시
git add 후 git status 입력 시
commit 후 git log로 확인

3. cal.c를 수정하여 새로운 버전의 파일 생성

cal.c 의 소스코드를 다음과 같이 수정
git status, 파일의 상태 확인
git add 후 파일의 상태 확인
commit 진행

 

4. 새로운 branch ver_B 생성

새로운 branch를 생성하기 전의 모습
새로운 branch를 생성한 후의 모습

5. 생성한 branch로 이동하여 새로운 버전 생성

git checkout 명령 이용, branch 변경, git branch를 이용하여 현재 위치한 branch 확인
cal.c 파일을 vim으로 열어서 소스코드 수정
cal.c의 소스코드를 다음과 같이 수정
파일 상태 확인
cal.c 의 변경내역 add
파일 상태 확인
branch ver_B에서 변경내용 commit
commit 후 git log로 commit 내역 확인

branch에서 새로운 버전을 만들었기 때문에 뭔가 갈라져야할 것 같지만 현재 프로젝트에서 ver_B 에서 생성한 버전이 유일한 최신버전이므로 가지가 갈라져서 나오지는 않는다.

6. master branch로 돌아가서 ver_B에서 생성한 버전 master branch에 merge

위치하는 branch를 mater branch로 변경
master 에서 생성한 cal.c 2.0 ver(좌) / ver_B에서 생성한 cal.c 3.0 (우)

 다음과 같이 master branch로 돌아와서 cal.c 파일을 열어서 소스의 내용을 비교해보니 ver2.0에 그대로 머물러 있는 것을 확인할 수 있다.

그렇다면 이제 merge를 해보도록 하자.

merge 수행

 

merge 수행 후 git log를 입력한 모습

ver_B 에서 git log를 입력했을 시와 그 결과가 동일하게 나타난다. 그 이유는 ver_B에서 만든 새로운 버전이 그대로 master로 넘어갔기 때문이다.

'Tools > Git, Github' 카테고리의 다른 글

Git 실습 시나리오 따라해보기(3)  (0) 2021.01.18
Git 실습 시나리오 따라해보기(2)  (0) 2021.01.18
git branch, merge  (0) 2021.01.16
git push - github 사용하기  (0) 2021.01.15
git checkup - 수정한 내용 취소하기  (0) 2021.01.14