Fork,Clone,Git tag

조윤수·2025년 1월 3일

Git 공부

목록 보기
4/4

1. Fork and Clone

모두를 협력자로 추가하지 않고 협업할 때 사용한다.권한이 필요하지 않고 fork하고 pull request를 보낼 수 있다.

모든 history가 따라오지만 fork한 것을 clone하면 연결은 내가 fork한 git repo와 local간의 관계에서 형성된다. clone할 때는 repo가 없어야 됨을 주의하자

2. Fork Workflow

fork해서 작업하고 pull request를 repo owner한테 보낸다. 두 개의 remote을 사용한다.

2.1) git remote add upstream url // 원격저장소를 추가하는 명령어

일반적으로 origin은 내가 클론한 원격 저장소의 기본 이름이고 upstream은 원본 프로젝트나 메인 프로젝트 저장소를 가리키는 이름이 보편적이다.

2.2) git pull upstream main

upstream 저장소의 main 브랜치를 현재 작업 중인 브랜치에 병합하는 명령어이다. 원본 프로젝트에서 변경된 내용을 자신의 브랜치에 가져온다.

3. Git Rebase

branch 통합할 때 Rebase vs Merging

언제 사용하는지가 제일 중요하다.

5. Rewording Commits

6. Git Tags

커밋을 태그할 수 있다. git tag을 생성해 특정 시점에 commit할 수 있다. branch가 commit을 가르키는 것이랑 동일하지만 차이점은 branch는 계속해서 이동하는 포인터지만 반면에 git tag은 commit한 시점에서 이동하지 않고 고정된다. tag를 옮길 수 있지만 그건 수동으로 해야된다!

6.1) 두 가지 유형
1. 그냥 이름
2. 추가 commit 내용을 태그에 포함

6.2) 명령어
git tag // 현재 repo에 tag을 다 나열
git tag -l // list all the tag

git checkout 5.3.1 // 태그 또는 브랜치를 체크아웃하여 해당 시점으로 이동
git switch -c name // 이제 이 시점에서 branch 생성가능

git diff v17.0.0 v17.0.1 // 두 tag 시점에서의 파일 변화 비교가능

git tag tagname // tag 생성, head가 현재 가르키는(참조하는) commit에 태그를 생성

git tag -a tagname // 메세지를 포함한 tag
ex. git tag -a v17.1.0

git show tagname // tag 이름과 메세지를 보기

git tag tagname commit 헤시 // head가 아닌 이전 commit에 tag 생성
ex. git tag mytag 67e8

git tag -f tagname // tag이름은 고유해야 한다. 그래서 이미 만들어진 tag를 다른 commtit으로 이동할 때 사용한다.
ex. git tag v17.0.03 697969588 -f

git tag -d tagname // tag 삭제

git push --tags // 그냥 push하면 tag는 포함되지 않는다. 따로 tag를 push 해줘야 한다.
ex. git push colt --tags // 여기서 colt는 remote name

7.Semantic Versioning

2.4.5 // major release.minor release. patch release

initial 1.0.0
1.0.1 // Patch Release
1.1.0 // Minor Release을 하면 patch은 다시 0으로 초기화
2.0.0 // Major Release 완전 주요 변화가 있으면

8.Local Config file

8.1) . git // git hidden foler
git 폴더안에 config라는 설정 파일이 존재한다.

8.2) ex. git config --local user.email "email"

현재 Git 저장소에서 사용하는 이메일 주소를 설정하는 명령어다. 이 설정은 로컬 저장소에만 적용된다. 이 명령을 실행하면 Git 저장소에서 커밋을 할 때 example@example.com 이메일이 사용된다. 로컬 저장소에서만 유효하며고 다른 저장소에서 사용되는 기본 이메일과는 별개이다.

출처

https://www.udemy.com/course/git-and-github-bootcamp/

profile
동국대학교 정보통신공학과

0개의 댓글