일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 빅데이터
- 파이썬
- 네트워크보안
- 알고리즘
- 소프트웨어공학
- 클라우드컴퓨팅
- 코딩
- 프로그래밍언어
- 웹개발
- Yes
- 버전관리
- 소프트웨어
- 딥러닝
- 자료구조
- 인공지능
- 컴퓨터비전
- 자바스크립트
- 머신러닝
- 데이터과학
- 컴퓨터과학
- 보안
- 사이버보안
- 데이터베이스
- 프로그래밍
- 2
- 데이터구조
- I'm Sorry
- 데이터분석
- 네트워크
- 컴퓨터공학
- Today
- Total
스택큐힙리스트
"git clone --mirror"와 "git clone --bare"의 차이점은 무엇입니까? 본문
git clone 도움말 페이지에는 다음과 같은 내용이 있습니다. --mirror
에 대해 다음과 같이 설명합니다:
원격 저장소의 미러를 설정합니다. 이것은
--bare
를 함축합니다.
하지만 --mirror
클론과 --bare
클론이 어떻게 다른지에 대한 자세한 내용은 제공하지 않습니다.
답변 1
원본에는 몇 개의 브랜치 (master (HEAD)
, next
, pu
, maint
), 일부 태그 (v1
, v2
, v3
), 일부 원격 브랜치 (devA/master
, devB/master
), 그리고 일부 다른 refs (refs/foo/bar
, refs/foo/baz
, 노트, stash, 다른 개발자의 네임스페이스 등일 수 있음) 가 있습니다.
git clone origin-url
(비어있지 않은): 모든 태그가 복사되며, 로컬 브랜치인master (HEAD)
가 원격 브랜치인origin/master
를 추적하고 있으며, 원격 브랜치인origin/next
,origin/pu
, 그리고origin/maint
가 있습니다. 추적 브랜치들은git fetch origin
과 같은 작업을 수행하면 예상대로 가져올 수 있도록 설정됩니다. 복제된 원격의 원격 브랜치 및 다른 참조는 완전히 무시됩니다.git clone --bare origin-url
: 모든 태그가 복사되며, 로컬 브랜치인master (HEAD)
,next
,pu
, 그리고maint
가 있으며, 원격 추적 브랜치는 없습니다. 즉, 모든 브랜치가 원본 그대로 복사되며, 완전히 독립적으로 설정되어 다시 가져올 것을 기대하지 않습니다. 복제된 원격의 원격 브랜치 및 다른 참조는 완전히 무시됩니다.git clone --mirror origin-url
: 모든 참조가 그대로 복사됩니다. 모든 태그와 로컬 브랜치인master (HEAD)
,next
,pu
, 그리고maint
를 가져올 수 있으며, 원격 브랜치로는devA/master
와devB/master
가 있으며, 다른 참조로는refs/foo/bar
와refs/foo/baz
가 있습니다. 모든 것이 복제된 원격과 동일하게 유지됩니다. 원격 추적은git remote update
를 실행하면 모든 참조가 원본에서 덮어씌워지도록 설정됩니다. 문서에 원래 적혀있던 대로, 이것은 거울입니다. 기능적으로 동일한 복사본으로, 원본과 상호 교환 가능합니다.
답변 2
깃(Git)은 현재 가장 인기 있는 버전 관리 시스템 중 하나로, 프로젝트의 히스토리와 변경 사항을 관리하는 데 사용됩니다. 깃을 사용하면 여러 사람이 동시에 작업하고 변경 사항을 추적하며, 안전하게 프로젝트를 관리할 수 있습니다. 깃을 사용하는 방법에 대해 많은 사람들이 알고 있지만, 여전히 유용한 기능 중 하나인 깃 클론 --mirror와 깃 클론 --bare의 차이에 대해 혼란을 겪고 있습니다.먼저, 깃 클론 --mirror와 깃 클론 --bare은 모두 원격 저장소를 복제하는 데 사용되는 명령어입니다. 원격 저장소는 프로젝트의 모든 버전과 변경 사항을 포함하고 있으며, 이를 로컬 컴퓨터로 가져와 작업할 수 있게 해줍니다.
그러나 깃 클론 --mirror와 깃 클론 --bare는 몇 가지 중요한 차이점이 있습니다. 깃 클론 --mirror는 원격 저장소의 모든 브랜치, 태그, 레퍼런스 등을 복사합니다. 이는 원격 저장소의 완벽한 복제본을 생성하므로, 원격 저장소와 정확히 동일한 상태를 유지합니다. 따라서, 깃 클론 --mirror로 복제된 로컬 저장소를 업데이트하면, 원격 저장소의 변경 사항이 자동으로 반영됩니다.
반면에, 깃 클론 --bare는 원격 저장소의 오직 버전과 레퍼런스만 복사합니다. 따라서, 로컬 저장소에서 변경 사항을 추적하려면 추가적인 설정이 필요합니다. 일반적으로 깃 클론 --bare는 중앙 원격 저장소로 사용되며, 여러 사용자와의 협업을 위해 사용됩니다. 이 경우, 개발자는 로컬 저장소에서 변경 사항을 추적하고, 중앙 원격 저장소로 푸시(Push)하여 다른 개발자들과 변경 사항을 공유합니다.
두 가지 명령어의 주요 차이점은 이렇습니다. 깃 클론 --mirror는 원격 저장소의 완벽한 복제본을 생성하며, 변경 사항이 자동으로 업데이트됩니다. 반면에, 깃 클론 --bare는 오직 버전과 레퍼런스만 복사하며, 변경 사항을 추적하기 위해서는 추가적인 작업이 필요합니다.
깃은 개발자들에게 기반 시스템으로서 많은 혜택을 제공합니다. 그리고 깃 클론 --mirror와 깃 클론 --bare와 같은 명령어들은 깃을 더욱 효율적으로 사용할 수 있게 돕습니다. 개발자가 이러한 명령어의 차이점을 알고, 상황에 맞게 사용할 수 있도록 하는 것이 중요합니다.