[Git] clone –bare vs. –mirror 차이
clone
명령어 수행 시 다양한 옵션이 존재하지만, 그 중에서 많이 사용되는 것 중에 bare
와 mirror
가 존재한다. 차이를 표로 나타내면 다음과 같다.
None | –bare | –mirror | |
---|---|---|---|
Working tree | O | X | X |
Contents | Working tree Repository DB (.git) | Repository DB | Repository DB Pull request (ref/pull/*) |
공통적으로는 repository DB가 모두 복제가 되는데 DB 내용은 다음과 같다.
- Tags
- Branches
- main HEAD
- next
- pu
- maint
아무 옵션 없이 clone을 할 경우 우리가 쉽게 볼 수 있는 working tree가 복제와 함께 위 DB도 복제된다.
--bare
option을 주면 repository DB들을 볼 수 있다.
$ ls branches config description HEAD hooks info objects packed-refs refs
반면 --mirror
는 --bare
가 가지고 있는 위의 repository DB 뿐만 아니라, pull request, remote update 정보들도 포함한다고 한다. 따라서 완벽하게 repository 내용과 동일하게 복제된다.
Reference
- https://www.whatwant.com/entry/bare-%EC%99%80-mirror%EC%9D%98-%EC%B0%A8%EC%9D%B4
- https://stackoverflow.com/questions/3959924/whats-the-difference-between-git-clone-mirror-and-git-clone-bare