이전 글
<branch>
여러갈래로 뻗는 나뭇가지
예를들어 언제 필요할까?
- 원래 소스코드는 그대로, 그리고 그 코드를 더럽히지 않으면서 고객을 위한 코드를 추가할 때 사용
file.xsl / file_client.xslex
- 나중에 버릴 것 같은 기술 추가할 때 브랜치를 만들어서 진행하면 버릴때 깔끔

- 새로운 branch 생성 : git branch <브랜치명>
-> git branch exp
- 브랜치 이동 : git checkout <브랜치명>
-> git checkout exp
=> 이동을 하더라도 그전 상태 master브랜치의 상태(만들어 놓은 버전들)를 그대로 가져간다.
브랜치 개념 이해 및 상황예시
1. master 브랜치에서 r1.txt (버전1)을 만든다. 2. exp 브랜치 만들고 이동 (버전1 그대로 가져감) 3. exp 브랜치에서 r1.txt(버전2)를 만든다. 4. 다시 master브랜치로 이동 => exp는 버전 1,2를 가지고 있었지만, master는 버전1만 있던 상태 그대로이다. 파일 새로 생성한 경우도 마찬가지로 다시 master로 이동하면 생성하기 전 상태 |
log 명령어
+ git log --branches : 현재 checkout되어있는 브랜치 말고 전체 브랜치 log 확인
+ git log --branches --decorate :
+ git log --branches --decorate --graph : 빨간 줄 표시 ( 브랜치가 서로 각자의 길을 가고 있을 때 직관적으로 볼 수 있다)
+ git log --reverse : 거꾸로 확인 (가장 처음만든게 젤 위)
+ git log --branches --graph --oneline : 간결하게 한줄로 보여줌
- git log master..exp : 브랜치 사이의 차이점 비교 => master에는 없고 exp에는 있는 것들을 보여줌
- git diff : 각각의 브랜치의 현재 상태를 비교 ( 나중에 필요할 때 찾아 쓰자)

위 사진 설명
먼저 좌측에 초록색점선과 빨간색 점선은 각각의 브랜치를 나타낸다.
위의 "브랜치 개념 및 상황예시"를
git log --branches --graph로 확인했을 때의 결과화면
- master 브랜치 : 1 , 2, 파일2: 버전1 존재
- exp 브랜치 : 1, 2, 3 존재
https://opentutorials.org/course/2708/15261
branch 정보확인 - 생활코딩
수업소개 여기서는 브랜치 간의 차이점을 비교하는 방법에 대해서 소개합니다. 수업 수업에서 사용한 명령어 브랜치 간에 비교할 때 git log "비교할 브랜치 명 1".."비교할 브랜치 명 2" 브랜치 간
opentutorials.org
<branch 병합>
exp의 내용을 master 브랜치로 병합 (관계가 헷갈리니 주의)
위의 목표를 하려면 master로 체크아웃하고 그 상태로 git merge exp 를 해줘야한다

합병해주면 master는 1,2, 파일2, 3 을 모두 가진다
exp 도 마찬가지로 합병해주기 위해
exp로 체크아웃, git merge master를 하면 master와 exp는 완전히 같은 상태가 된다
그럼 이제 exp는 필요없으니 다시 master로 체크아웃하고
- ( git branch -d exp : 브랜치삭제) 입력해서 삭제
+( git branch -D exp : 가끔 합치지 않았는데 지울거냐고 물어봄. 그때는 -D로 강제삭제)
<branch 병합 시 충돌해결>
merge하는 과정에서 파일의 내용이 서로 다를경우 충돌이 일어날 수 있다
예시 )
common.txt를 master와 exp에 모두 만들어 주었다.
버전을 수정하며
master의 common.txt 내용은 : print(!)
exp의 common.txt 내용은 : print(?) 이라면,
같은 위치에 다른 내용이 있기 때문에 병합 과정에서 충돌이 일어난다
=> master의 파일을 print(!,?)로 하던지 내용을 같게 만들어주는 방법을 써서 해결할 수 있다
cf. 만약 서로 다른위치에 있다면 서로 다른 두 내용을 병합 과정에서 합쳐준다 (충돌 x 정상병합o)
<stash> - 나중에 이런문제 생기면 참고
다른 브랜치로 checkout을 해야 하는데 아직 현재 브랜치에서 작업이 끝나지 않은 경우는 커밋을 하기가 애매합니다. 이런 경우 stash를 이용하면 작업중이던 파일을 임시로 저장해두고 현재 브랜치의 상태를 마지막 커밋의 상태로 초기화 할 수 있습니다. 그 후에 다른 브랜치로 이동하고 작업을 끝낸 후에 작업 중이던 브랜치로 복귀한 후에 이전에 작업하던 내용을 복원할 수 있습니다. 여기서는 이 기능에 대해서 알아봅니다.
https://opentutorials.org/course/2708/15332
stash - 생활코딩
수업소개 다른 브랜치로 checkout을 해야 하는데 아직 현재 브랜치에서 작업이 끝나지 않은 경우는 커밋을 하기가 애매합니다. 이런 경우 stash를 이용하면 작업중이던 파일을 임시로 저장해두고
opentutorials.org
이전 글
<branch>
여러갈래로 뻗는 나뭇가지
예를들어 언제 필요할까?
- 원래 소스코드는 그대로, 그리고 그 코드를 더럽히지 않으면서 고객을 위한 코드를 추가할 때 사용
file.xsl / file_client.xslex
- 나중에 버릴 것 같은 기술 추가할 때 브랜치를 만들어서 진행하면 버릴때 깔끔

- 새로운 branch 생성 : git branch <브랜치명>
-> git branch exp
- 브랜치 이동 : git checkout <브랜치명>
-> git checkout exp
=> 이동을 하더라도 그전 상태 master브랜치의 상태(만들어 놓은 버전들)를 그대로 가져간다.
브랜치 개념 이해 및 상황예시
1. master 브랜치에서 r1.txt (버전1)을 만든다. 2. exp 브랜치 만들고 이동 (버전1 그대로 가져감) 3. exp 브랜치에서 r1.txt(버전2)를 만든다. 4. 다시 master브랜치로 이동 => exp는 버전 1,2를 가지고 있었지만, master는 버전1만 있던 상태 그대로이다. 파일 새로 생성한 경우도 마찬가지로 다시 master로 이동하면 생성하기 전 상태 |
log 명령어
+ git log --branches : 현재 checkout되어있는 브랜치 말고 전체 브랜치 log 확인
+ git log --branches --decorate :
+ git log --branches --decorate --graph : 빨간 줄 표시 ( 브랜치가 서로 각자의 길을 가고 있을 때 직관적으로 볼 수 있다)
+ git log --reverse : 거꾸로 확인 (가장 처음만든게 젤 위)
+ git log --branches --graph --oneline : 간결하게 한줄로 보여줌
- git log master..exp : 브랜치 사이의 차이점 비교 => master에는 없고 exp에는 있는 것들을 보여줌
- git diff : 각각의 브랜치의 현재 상태를 비교 ( 나중에 필요할 때 찾아 쓰자)

위 사진 설명
먼저 좌측에 초록색점선과 빨간색 점선은 각각의 브랜치를 나타낸다.
위의 "브랜치 개념 및 상황예시"를
git log --branches --graph로 확인했을 때의 결과화면
- master 브랜치 : 1 , 2, 파일2: 버전1 존재
- exp 브랜치 : 1, 2, 3 존재
https://opentutorials.org/course/2708/15261
branch 정보확인 - 생활코딩
수업소개 여기서는 브랜치 간의 차이점을 비교하는 방법에 대해서 소개합니다. 수업 수업에서 사용한 명령어 브랜치 간에 비교할 때 git log "비교할 브랜치 명 1".."비교할 브랜치 명 2" 브랜치 간
opentutorials.org
<branch 병합>
exp의 내용을 master 브랜치로 병합 (관계가 헷갈리니 주의)
위의 목표를 하려면 master로 체크아웃하고 그 상태로 git merge exp 를 해줘야한다

합병해주면 master는 1,2, 파일2, 3 을 모두 가진다
exp 도 마찬가지로 합병해주기 위해
exp로 체크아웃, git merge master를 하면 master와 exp는 완전히 같은 상태가 된다
그럼 이제 exp는 필요없으니 다시 master로 체크아웃하고
- ( git branch -d exp : 브랜치삭제) 입력해서 삭제
+( git branch -D exp : 가끔 합치지 않았는데 지울거냐고 물어봄. 그때는 -D로 강제삭제)
<branch 병합 시 충돌해결>
merge하는 과정에서 파일의 내용이 서로 다를경우 충돌이 일어날 수 있다
예시 )
common.txt를 master와 exp에 모두 만들어 주었다.
버전을 수정하며
master의 common.txt 내용은 : print(!)
exp의 common.txt 내용은 : print(?) 이라면,
같은 위치에 다른 내용이 있기 때문에 병합 과정에서 충돌이 일어난다
=> master의 파일을 print(!,?)로 하던지 내용을 같게 만들어주는 방법을 써서 해결할 수 있다
cf. 만약 서로 다른위치에 있다면 서로 다른 두 내용을 병합 과정에서 합쳐준다 (충돌 x 정상병합o)
<stash> - 나중에 이런문제 생기면 참고
다른 브랜치로 checkout을 해야 하는데 아직 현재 브랜치에서 작업이 끝나지 않은 경우는 커밋을 하기가 애매합니다. 이런 경우 stash를 이용하면 작업중이던 파일을 임시로 저장해두고 현재 브랜치의 상태를 마지막 커밋의 상태로 초기화 할 수 있습니다. 그 후에 다른 브랜치로 이동하고 작업을 끝낸 후에 작업 중이던 브랜치로 복귀한 후에 이전에 작업하던 내용을 복원할 수 있습니다. 여기서는 이 기능에 대해서 알아봅니다.
https://opentutorials.org/course/2708/15332
stash - 생활코딩
수업소개 다른 브랜치로 checkout을 해야 하는데 아직 현재 브랜치에서 작업이 끝나지 않은 경우는 커밋을 하기가 애매합니다. 이런 경우 stash를 이용하면 작업중이던 파일을 임시로 저장해두고
opentutorials.org