본문 바로가기

코딩해보니/Git60

특강 - Git을 활용한 웹 개발과 실무의 이해 어느 특성화 고등학교 1, 2학년을 대상으로 2일간 총 13시간의 강의를 진행했는데 주요 내용을 남겨 보고자 한다.   특성화 고등학교여서 그런지 웹 개발에 관심을 가지고 있는 학생들이 많았고, 그래서 그런지 사뭇 진지했고, 즐거운 시간이었다. 이런 강의를 준비함에 있어 많이 고려하는 부분은 짧은 시간 동안 무엇을 이야기할 것인지 와 수강을 하는 학생들의 아는 정도가 모두 다르기 때문에 어느 수준으로 해야 할 것인가이다. 그리고, 무엇보다 중요한 것은 흥미를 가지게 하고 즐거운 수업이 되게 하는 것이다. 학교 담당 선생님께서 요청 주신 부분에서 크게 어긋나지 않으면서 내용적으로는 충분히 알차게 하는 것이다.  고등학교에서의 강의는 수업 시간표에 맞춰 50분 수업 10분 휴식으로 진행되고 점심은 급식을 함.. 2024. 11. 7.
[Git_58] 알아 두면 유용한 Git (.gitignore, blame) 알아 두면 유용한 Git .gitignore 프로젝트를 진행하다 보면, 불필요한 파일을 생성하거나 보안에 민감한 파일들이 있을 수 있습니다. 혼자 개발을 하는 경우라면 크게 관련 없겠지만 여러 사람과 협업을 한다거나 실제 서비스로 배포가 진행될 때에는 불필요한 파일들은 분리해서 관리되어야 하는 경우가 있습니다. 다시 말해, Git으로 관리하고 싶지 않은 파일이나 폴더가 있을 수 있는데 이 때 .gitignore 파일을 이용합니다. git과 ignore(무시하다) 단어를 합성한 설정 파일인데 이름을 직관적으로 잘 지은 것 같습니다. .gitignore 파일은 편집기를 이용해 간단하게 작성할 수 있습니다. .gitignore 파일은 저장소 폴더의 최상위 디렉터리에 두어야 하며 다음과 같이 작성할 수 있습니다.. 2023. 12. 5.
[Git_57] GitHub 협업 플로우 GitHub 협업 플로우 지금까지 Git에 대한 기본적인 이해는 되었길 희망합니다. 이번에는 여러 사람이 협업을 한다고 하면 큰 틀에서 규칙이 필요합니다. 아무리 좋은 버전 관리 시스템을 사용한다고 해도 충돌은 피할 수 없습니다. 이를 최소화하는 것이 중요하고 배포까지 고려한다면 개발 → 테스트 → 배포라는 과정에서 어떤 규칙하에 진행되어야 하는지는 중요한 부분이라고 할 수 있습니다. SVN(Subversion)으로 버전 관리 시스템을 구성할 때에도 SVN의 기본 구성 요소인 trunk, branch, tag를 기반으로 trunk는 항상 안정적인 버전을 유지하고, 배포 후 tag를 달아 배포 버전을 관리하고, 실제 작업은 branch를 생성해 진행하는 큰 틀에서의 규칙을 만들고 세부 지침을 정하는 등이 .. 2023. 5. 15.
[Git_56] 태그(Tag) - 삭제하기 & 브랜치 태그(Tag) 삭제하기 로컬 저장소의 태그 삭제 생성한 태그는 언제든지 삭제할 수 있습니다. 터미널에서 삭제하는 명령은 다음과 같이 -d 옵션과 삭제할 태그 이름을 함께 사용합니다. # 태그 삭제하기 $ git tag -d 다음은 터미널에서 커밋 이력을 확인해 태그를 확인한 다음 1.0.0을 삭제한 화면입니다. 삭제 후 다음과 같이 다시 커밋 이력을 확인해 삭제된 것을 확인할 수 있습니다. 이와 같이 태그는 단순히 커밋에 대한 꼬리표라는 포인터 개념이기 때문에 삭제하더라도 커밋에 영향을 주진 않습니다. 소스트리(Sourcetree)에서 로컬 저장소 태그 삭제 소스트리(Sourcetree)에서도 마찬가지로 편리하게 삭제할 수 있습니다. 다음과 같이 소스트리 왼쪽 사이드 메뉴에 태그 목록에서 삭제하고자 하는.. 2023. 5. 14.
[Git_55] 태그(Tag) - 서버(원격) 저장소와 태그 정보 동기화 서버(원격) 저장소와 태그 정보 동기화 서버(원격) 저장소를 함께 사용하며 협업 중이라면, 로컬 저장소에서 생성된 태그 정보를 서버(원격) 저장소에도 올려서 다른 사람들에게도 공유하는 것은 당연합니다. 우리가 서버(원격) 저장소로 로컬 저장소의 커밋 정보를 $ git push 명령어를 사용해 올리는 것을 아래 포스팅에서 학습했습니다. [Git_42] 서버(원격) 저장소 - 전송하기 (git push) 서버(원격) 저장소 - 전송하기 (git push) push 위 그림에서도 알 수 있듯이 로컬 저장소의 커밋을 서버 저장소로 전송하는 명령어는 push를 사용합니다. 앞서 $ git remote -v 를 통해 등록된 서버 저장소 wishlan.tistory.com push 명령어은 다음과 같이 사용할 수 있.. 2023. 5. 13.
[Git_54] 태그(Tag) - 상세 정보 확인 태그(Tag)의 상세 정보 확인 지난 포스팅에서 Lightweight 태그와 Annotated 태그를 생성해 봤습니다. [Git_53] 태그(Tag) - 생성하기 태그 생성하기 태그는 생성한다기보다는 꼬리표니까 붙인다는 말이 더 어울릴 것 같습니다. 태그를 붙이는(생성하는) 방법과 관련한 명령어 사용법이 3가지가 있었습니다. 태그를 만드는데 이 wishlan.tistory.com 그런데, 태그 목록을 봐도 커밋 이력을 봐도 무엇이 Lightweight 태그인지 Annotated 태그인지 알 수가 없습니다. 태그 상세 정보를 확인하면 그 차이를 알 수 있습니다. 상세 정보 확인 방법은 다음과 같습니다. # 태그의 상세 정보 확인 $ git show 다음이 Annotated 태그인 tag 1.1.0에 대한 .. 2023. 5. 12.
[Git_53] 태그(Tag) - 생성하기 태그 생성하기 태그는 생성한다기보다는 꼬리표니까 붙인다는 말이 더 어울릴 것 같습니다. 태그를 붙이는(생성하는) 방법과 관련한 명령어 사용법이 3가지가 있었습니다. 태그를 만드는데 이렇게 방법이 여러 가지인 이유는 Git에서 태그를 다음의 두 종류로 구분하기 때문입니다. Lightweight 태그 Annotated 태그 Annotated 태그는 영문 그대로 주석을 달수 있는 태그입니다. 반면에 Lightweight 태그는 단순히 표시만 할 수 있는 태그라고 이해하면 되겠습니다. 일반적으로는 Annotated 태그를 사용하는 것이 좋습니다. 필요한 정보들을 부가적으로 남겨 둘 수 있기 때문에 다른 사람들과 공유함에 있어서도 나중에 다시 찾아봤을 때 도움이 됩니다. Lightweight 태그는 보통 임시로 .. 2023. 5. 11.
[Git_52] 태그(Tag) - 사용법 (관련 명령어) 태그 (Tag) 태그(Tag)는 사전 그대로 꼬리표입니다. 꼬리표는 어떤 표시를 하기 위해 붙인 것을 얘기합니다. Git에서는 어떤 표시를 하냐면 특정 커밋에 표시를 합니다. 표시를 할 수 있도록 제공하는 기능이 태그(Tag)입니다. 다른 버전 관리 프로그램에도 태그(Tag) 기능은 제공합니다. 보통 태그는 버전으로 표시합니다. 특정 커밋에 배포한 버전을 표시해 둠으로써 최종 배포된 버전의 커밋을 쉽게 구별할 수 있습니다. 태그 사용법 (태그 기능 명령어) 태그(Tag) 기능의 명령어는 tag입니다. tag 만 입력해 실행하면 생성된 태그 목록을 확인합니다. 추가 옵션을 통해 태그 기능에 필요한 실행을 할 수 있습니다. 사용법(태그 기능 관련 명령어)은 다음과 같습니다. # 태그 기본 사용법 $ git .. 2023. 5. 10.
[Git_51] 원격 브랜치 삭제 및 삭제시 동기화 문제 원격 브랜치 삭제 로컬에서 원격 저장소의 브랜치를 삭제할 수 있습니다. 항상 그렇듯이 삭제는 신중하게 판단해야 합니다. 혹, 여러 사람이 함께 사용중인 브랜치라면 삭제해서는 안될 수 있습니다. 원격 브랜치를 삭제하는 방법은 push 명령어와 -d 옵션 또는 --delete 옵션을 함께 사용합니다. 사용법은 다음과 같습니다. # 원격 브랜치 삭제 $ git push -d(또는 --delete) 예를 들어, 우리는 을 origin이라고 설정했으며, 원격 저장소의 bugfix2 브랜치를 삭제하려면 $ git push origin --delete bugfix2 라고 실행합니다. 실제 실행 화면은 다음과 같습니다. GitHub에서 확인 결과 삭제된 것을 볼 수 있습니다. 원격 브랜치 삭제 시 동기화 문제 서버(원.. 2023. 5. 9.
[Git_50] 원격 브랜치를 로컬 저장소로 복사 & 업스트림 연결하기 원격 브랜치를 로컬 저장소로 복사 우리는 아래의 포스팅에서 로컬 저장소의 브랜치(branch)를 서버(원격) 저장소로 전송하여 서버(원격) 저장소에 브랜치를 만드는 방법을 확인했습니다. [Git_48] 서버(원격) 저장소 - 원격 브랜치의 이해 원격 브랜치의 이해 Git을 사용한 협업에서 서버 저장소에 대해 알아보았습니다. 우리는 브랜치를 공부하면서 브랜치를 만들고 병합하는 등의 작업을 통해 브랜치 운용을 어떻게 할 수 있는지 wishlan.tistory.com 이제는 반대로 서버(원격) 저장소에 있는 브랜치를 로컬 저장소로 복사하는 방법을 확인하겠습니다. 브랜치 장에서 브랜치 생성과 동시에 이동하는 방법을 학습했는데, 사용법은 다음과 같습니다. # 브랜치 생성과 동시에 이동하기 $ git checkou.. 2023. 5. 4.
[Git_49] 원격 브랜치 - 로컬 브랜치 이름과 원격 브랜치 이름을 다르게 설정하기 로컬 브랜치 이름과 원격 브랜치 이름을 다르게 설정하기 우리는 앞서 $ git push -u origin hotfix라고 실행한 결과 서버(원격) 저장소에 로컬 저장소의 브랜치 이름과 동일한 브랜치 hotfix가 만들어지는 것을 확인했습니다. 보통은 이렇게 서버(원격) 저장소와 로컬 저장소의 브랜치 이름을 동일하게 사용합니다. 이렇게 하는 것이 헷갈리지 않기 때문입니다. [Git_48] 서버(원격) 저장소 - 원격 브랜치의 이해 원격 브랜치의 이해 Git을 사용한 협업에서 서버 저장소에 대해 알아보았습니다. 우리는 브랜치를 공부하면서 브랜치를 만들고 병합하는 등의 작업을 통해 브랜치 운용을 어떻게 할 수 있는지 wishlan.tistory.com 하지만, 혹 같은 이름으로 사용을 할 수 없는 경우가 있다.. 2023. 4. 27.
[Git_48] 서버(원격) 저장소 - 원격 브랜치의 이해 원격 브랜치의 이해 Git을 사용한 협업에서 서버 저장소에 대해 알아보았습니다. 우리는 브랜치를 공부하면서 브랜치를 만들고 병합하는 등의 작업을 통해 브랜치 운용을 어떻게 할 수 있는지 학습했습니다. Git으로 버전 관리를 하면서 master 브랜치는 안정적인 코드를 유지하는 브랜치로 하고 추가 작업을 진행할 때는 브랜치를 생성해 작업해서 배포 시 master 브랜치로 병합하는 방식으로 하는 것이 보통입니다. 이와 같이 브랜치 작업도 원격 브랜치를 두고 협업을 할 수 있습니다. 로컬 저장소의 서버(원격) 저장소로 GitHub를 사용했듯이 서버(원격) 저장소에도 브랜치를 생성할 수 있으며, 서버(원격) 저장소에 생성한 브랜치를 원격 브랜치라고 합니다. 로컬에 Git 저장소를 만들었다고 서버에 저장소가 자동.. 2023. 4. 25.