개인 과제가 팀 과제를 진행한 레포지토리를 포크 해서 그 위에 각자 레포지토리에서 테스트 코드를 추가하는 것이다.
포크를 하고 그 위에 코드를 쓰고 push를 했는데 잔디가 안 심어진다. 그래서 왜 안되지? 한번 찾아봤다.
잔디가 왜 안 심어질까 ?
GitHub에서 "잔디"는 사용자의 개인 활동 기록을 나타내는 것으로, 사용자의 개인 저장소에 대한 커밋 활동을 기반으로 한다. Fork 해온 저장소에서 작업을 하고, 그 저장소에 커밋과 푸시를 하더라도, 이는 원본 저장소의 활동으로 간주되지 않는다 ㅠㅠ 따라서 원본 저장소에 대한 직접적인 기여가 아니기 때문에, 잔디에 반영되지 않는다..
잔디를 심기 위해서는 아래의 요건들이 충족되어야 함
- GitHub 계정과 commit 이메일 계정이 동일
- commit이 Fork 한 repository가 아닌 나만의 repository에서 이루어져야 함
즉, 커밋이 fork 한 레포지토리에서 이루어졌기 때문에 잔디가 반영이 안된 것.
그럼 어떻게 해야 잔디가 심어질까?
지우면은 .. 지금까지 작성한 커밋이 삭제되니, fork 해온 레포지토리를 복사해서 내 깃허브에 새로운 레포지토리로 만들기
복사해오면 커밋 기록도 같이 오니, 초록 잔디도 심을 수 있다.
바로 Mirror-push를 사용하면 된다 이게 뭔 뜻이냐고? 이름 그대로다 ~ 아래에서 한번 해결해 보자~~
1. 나의 github에 새로운 레파지토리 생성 (커밋 복사 해와야 하니 )
2. 내가 복사한 fork 레포지토리 링크를 복사한다.
3. 복사한 링크를 로컬에서 bare clone 한다.
4. 바로 Mirror Push 이용하기~ ( git push --mirror)
일단 클론 한 fork레포지토리로 들어가고, 커밋을 복사할 새로운 레포지토리 주소를 입력하면 된다
그러면 짜잔 ~ 복사도 잘되고 깃허브에 잔디도 잘 심어진 걸 볼 수 있다
bare clone 이란?
bare clone은 Git에서 작업 디렉터리 없이 저장소 데이터만 포함하는 클론을 의미한다.
주로 서버나 중간 저장소로 사용되며, 사용자가 직접 코드를 수정하거나 개발하는 데 사용되지는 않는다.
기본적으로는 Git 저장소의 모든 내용을 포함하지만, 워킹 디렉터리를 포함하지 않기 때문에
내부적인 파일과 코드를 직접적으로 볼 수는 없다.
저장소를 백업하거나 다른 저장소에 코드를 미러링 하는 용도로 주로 사용된다.
mirror push란?
mirror push는 Git에서 하나의 저장소의 모든 데이터(브랜치, 태그, 커밋 등)를
다른 저장소로 완벽하게 복제하는 과정. 이 방법을 통해 원본 저장소의 완전한 미러(거울) 버전을
다른 위치에 생성할 수 있다. 주로 백업, 복제 또는 저장소 이전 시 사용된다.
'Github&Git' 카테고리의 다른 글
[Git] Git Flow에 대해 알아보자 (0) | 2024.07.02 |
---|---|
[Git] git commit - -amend로 마지막 커밋 수정 방법 (1) | 2024.05.29 |
[Github] Repository 접근 권한 변경 방법( Public / Private) (0) | 2024.05.22 |
[Github] 깃허브 Readme에 이미지 올리기 (0) | 2024.05.17 |
[Git] 좋은 Commit message 규칙 (0) | 2024.05.07 |