{{위키데이터 속성 추적}}
{{소프트웨어 정보
| 이름 = 깃
| 로고 = git-logo-2012.svg
| 화면 = Git session.svg
| 설명 = 저장소 생성, 파일 추가, 원격 동기화를 표시하는 터미널 창
| 원저자 = [[리누스 토르발스]]<ref name="git-initial-commit">{{웹 인용|url = https://github.com/git/git/commit/e83c5163316f89bfbde7d9ab23ca2e25604af290 |date = 8 April 2005 |title = Initial revision of "git", the information manager from hell |publisher = Github |accessdate = 20 December 2015 |url-status = live |archiveurl = https://web.archive.org/web/20151116175401/https://github.com/git/git/commit/e83c5163316f89bfbde7d9ab23ca2e25604af290 |archivedate = 16 November 2015 |df = dmy-all }}</ref>
| 개발자 = 주니오 하마노(Junio Hamano), [[리누스 토르발스]] 등<ref name="git-commits">{{웹 인용|url = https://github.com/git/git/graphs/contributors |date = 8 June 2016 |title = Commit Graph |publisher = Github |accessdate = 19 December 2015 |url-status = live |archiveurl = https://web.archive.org/web/20160120121816/https://github.com/git/git/graphs/contributors |archivedate = 20 January 2016 |df = dmy-all }}</ref>
| released = {{시작 날짜와 나이|2005|4|7|df=yes}}
| latest release version = {{wikidata|property|preferred|references|edit|Q186055|P348|P548=Q2804309}}
| latest release date = {{wikidata|qualifier|preferred|single|Q186055|P348|P548=Q2804309|P577}}
| latest preview version = {{wikidata|property|preferred|references|edit|Q186055|P348|P548=Q51930650}}
| latest preview date = {{wikidata|qualifier|preferred|single|Q186055|P348|P548=Q51930650|P577}}
| 운영체제 = [[리눅스]], [[POSIX]], [[마이크로소프트 윈도우|윈도우]], [[OS X]]
| programming language = [[C (프로그래밍 언어)|C]], [[셸]], [[펄]], [[Tcl]], [[파이썬]]<ref>{{웹 인용|url = https://github.com/git/git |title = Git Source Code Mirror |date =  |accessdate = 1 January 2017 |url-status = live |archiveurl = https://web.archive.org/web/20170208051639/https://github.com/git/git |archivedate = 8 February 2017 |df = dmy-all }}</ref>
| 플랫폼 = [[IA-32]], [[x86-64]]
| 종류 = [[버전 관리]]
| 언어 = 영어
| 라이선스 = [[GNU 일반 공중 사용 허가서]] v2
}}

'''깃'''(Git {{IPA|/ɡɪt/}}<ref>https://github.com/</ref>)은 [[컴퓨터 파일]]의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 [https://git-scm.com/book/en/v2/Getting-Started-What-is-Git%3F#:~:text=more%20like%20a-,stream%20of%20snapshots,-. 스냅샷 스트림] 기반의 [[분산 버전 관리 시스템]]이다. 또는 이러한 명령어를 가리킨다.  [[소프트웨어 개발]]에서 [[소스 코드 관리]]에 주로 사용되지만<ref name="effcomp">{{서적 인용|last1 = Scopatz |first1 = Anthony |last2 = Huff |first2 = Kathryn D. |title = Effective Computation in Physics |date = 2015 |publisher = O'Reilly Media, Inc. |isbn = 9781491901595 |page = 351 |url = https://books.google.de/books?id=DYoNCgAAQBAJ&pg=PA351 |accessdate = 20 April 2016 |url-status = live |archiveurl = https://web.archive.org/web/20160507172519/https://books.google.de/books?id=DYoNCgAAQBAJ&pg=PA351 |archivedate = 7 May 2016 |df = dmy-all }}</ref> 어떠한 파일 집합의 변경사항을 지속적으로 추적하기 위해 사용될 수 있다. [[기하학적 불변 이론]]을 바탕으로 설계됐고, [[분산 버전 관리]] 시스템으로서 빠른 수행 속도에 중점을 두고 있는 것<ref name="kernel_SCM_saga">{{메일링 인용|mailinglist = linux-kernel |last = Torvalds |first = Linus |url = https://marc.info/?l=linux-kernel&m=111288700902396 |title = Re: Kernel SCM saga.. |date = 2005-04-07 }} "So I'm writing some scripts to try to track things a whole lot faster."</ref>이 특징이며 데이터 무결성,<ref name="integrity_goals">{{메일링 인용|last = Torvalds |first = Linus |authorlink = 리누스 토르발스 |mailinglist = git |date = 2007-06-10 |title = Re: fatal: serious inflate inconsistency |url = https://marc.info/?l=git&m=118143549107708 }}</ref> 분산, 비선형 워크플로를 지원한다.<ref name="linusGoogleTalk">{{영상 인용|people = Linus Torvalds |date = 2007-05-03 |url = https://www.youtube.com/watch?v=4XpnKHJAok8 |title = Google tech talk: Linus Torvalds on git |time = 02:30 |accessdate = 2007-05-16 |url-status = live |archiveurl = https://web.archive.org/web/20070528041814/https://www.youtube.com/watch?v=4XpnKHJAok8 |archivedate = 28 May 2007 |df = dmy-all }}</ref>

깃은 2005년에 [[리눅스 커널]] 개발을 위해 초기 개발에 기여한 다른 커널 개발자들과 함께 2005년에 [[리누스 토르발스]]가 처음 개발한 것이다.<ref name="pro-git-1.2">{{서적 인용|chapter-url = https://git-scm.com/book/en/v2/Getting-Started-A-Short-History-of-Git |chapter = A Short History of Git |title = Pro Git |publisher = Apress |accessdate = 26 December 2015 |date = 2014 |edition = 2nd |url = https://git-scm.com/book/en/v2 |url-status = live |archiveurl = https://web.archive.org/web/20151225223054/http://git-scm.com/book/en/v2 |archivedate = 25 December 2015 |df = dmy-all }}</ref> 2005년부터 지금까지 주니오 하마노(Junio Hamano)가 소프트웨어의 유지보수를 맡고 있다.

다른 대부분의 분산 버전 관리 시스템처럼, 또 대부분의 [[클라이언트-서버]] 시스템과 달리, 모든 [[노드]]의 모든 깃 [[디렉터리]]는 네트워크 접속이나 중앙 서버와는 독립적으로 동작하는 완전한 이력 및 완전한 버전 추적 등, 모든 기능을 갖춘 [[저장소]]이다.<ref>{{서적 인용|last1 = Chacon |first1 = Scott |title = Pro Git |date = 24 December 2014 |publisher = [[Apress]] |location = New York, NY |isbn = 978-1-4842-0077-3 |pages = 29–30 |edition = 2nd |url = https://git-scm.com/book/en/v2 |url-status = live |archiveurl = https://web.archive.org/web/20151225223054/http://git-scm.com/book/en/v2 |archivedate = 25 December 2015 |df = dmy-all }}</ref>

깃은 [[GNU 일반 공중 사용 허가서]] v2 하에 배포되는 [[자유 소프트웨어]]이다.

== 역사 ==
[[리눅스 커널]]의 개발자들은 2002년부터 프로젝트를 관리하는 [[버전 관리|소스 관리 시스템]](SCM)으로 [[비트키퍼]]를 사용해 왔었다. 비트키퍼의 저작권을 가지고 있던 [[래리 맥보이]](Larry McVoy)는 [[앤드루 트리젤]]이 비트키퍼 프로토콜을 [[역공학|리버스 엔지니어링]]하여 소스풀러(SourcePuller)를 만들었다고 주장하면서, 비트키퍼의 자유 이용을 철회했다. 그에 따라 많은 개발자들이 비트키퍼의 이용을 포기하게 되면서 2005년 4월부터 깃 개발이 시작되었다.<ref name="linux.com44147">{{웹 인용 |url=https://www.linux.com/news/bitkeeper-and-linux-end-road |제목=BitKeeper and Linux: The end of the road? {{!}}linux.com |확인날짜=2017-05-19 |보존url=https://web.archive.org/web/20170608224906/https://www.linux.com/news/bitkeeper-and-linux-end-road |보존날짜=2017-06-08 |url-status=dead }}</ref> (이 동일한 사건은 또한 [[머큐리얼]]이라는 다른 버전 관리 시스템이 만들어진 계기가 되기도 했다)

[[리누스 토르발스]]는 비트키퍼와 같은 [[분산 버전 관리 시스템]]을 원했으나 당시 사용 가능했던 [[자유소프트웨어]] 중 어느 것도 자신의 요구를 충족하지 못했다. 토르발스는 패치를 적용하고 모든 관련 메타데이터를 업데이트하는데 30초가 필요한 소스 관리 시스템의 예를 언급하면서, 동료 관리자들과의 동기화를 하려면 한 번에 이런 동작을 250번이나 수행해야 하는 리눅스 커널 관리에서는 적용할 수 없다고 하였다. 그는 패치 작업에 3초 이상 소요되면 안 된다고<ref name="kernel_SCM_saga" /> 규정하였으며 3가지 사항을 더 추가하였다:
* 무엇을 하지 "않을지"의 예로 [[CVS]]를 참고할 것. 의심이 되면 명확히 반대의 결정을 할 것<ref name="linusGoogleTalk" />
* 분산 방식의 비트키퍼같은 워크플로를 지원할 것<ref name="linusGoogleTalk" />
* 우연이든 악의적이든 변질에 대비한 매우 강력한 안전 기준을 포함할 것<ref name="integrity_goals" />

당시 존재했던 [[버전 관리 시스템]] 중에서 이런 기준을 만족하는 것은 없었고, 따라서 토르발스는 2.6.12-rc2 리눅스 커널 개발 릴리스 직후부터 자신이 직접 작성해 나가기 시작했다.<ref name="linusGoogleTalk" />

깃의 개발은 2005년 4월 3일에 시작되었다.<ref name="selfhost">{{메일링 인용|url=https://marc.info/?l=git&m=117254154130732|title=Re: Trivia: When did git self-host?|date=2007-02-27|last=Torvalds|first=Linus|mailinglist=git}}</ref> 토르발스는 4월 6일 이 프로젝트를 발표했다.<ref>{{메일링 인용|url=https://marc.info/?l=linux-kernel&m=111280216717070|title=Kernel SCM saga..|date=2005-04-06|last=Torvalds|first=Linus|mailinglist=linux-kernel}}</ref> 4월 7일 기준으로 [[셀프 호스팅|자체 호스팅]]이 진행되었다.<ref name="selfhost" /> 여러 브랜치의 최초 병합은 4월 18일 실시되었다.<ref>{{메일링 인용|url=https://marc.info/?l=git&m=111377572329534|title=First ever real kernel git merge!|date=2005-04-17|last=Torvalds|first=Linus|mailinglist=git}}</ref> 4월 29일, 초기의 깃은 벤치마크 수행 시 1초에 6.7개의 패치 속도로 리눅스 커널 트리에 패치를 기록하여, 토르발스는 그의 성능 목표를 달성하였다.<ref>{{메일링 인용|url=https://marc.info/?l=git&m=111475459526688|title=Mercurial 0.4b vs git patchbomb benchmark|date=2005-04-29|last=Mackall|first=Matt|mailinglist=git}}</ref> 6월 16일 깃은 커널 2.6.12 릴리스를 관리하였다.<ref>{{메일링 인용|url=https://marc.info/?l=git-commits-head&m=111904216911731|title=Linux 2.6.12|date=2005-06-17|last=Torvalds|first=Linus|mailinglist=git-commits-head}}</ref>

토르발스는 2005년 7월 26일 프로젝트의 주 기여자인 [[주니오 하마노]]에게 [[소프트웨어 유지보수|유지보수]]를 인계하였다.<ref>{{메일링 인용|url=https://marc.info/?l=git&m=112243466603239|title=Meet the new maintainer...|date=2005-07-27|last=Torvalds|first=Linus|mailinglist=git}}</ref> 하마노는 2005년 12월 21일 1.0 릴리스를 맡았으며 프로젝트의 핵심 유지보수자로 남아있다.<ref>{{메일링 인용|url=https://marc.info/?l=git&m=113515203321888|title=Announce: Git 1.0.0|date=2005-12-21|last=Hamano|first=Junio C.|mailinglist=git}}</ref>

=== 릴리스 ===
{| class="wikitable"
|-
! 버전
! 원래 출시일
! 최신판
! 출시일
|-
| {{Version|o|0.99}}
| 2005-07-11
| 0.99.9n
| 2005-12-15
|-
| {{Version|o|1.0}}
| 2005-12-21
| 1.0.13
| 2006-01-27
|-
| {{Version|o|1.1}}
| 2006-01-08
| 1.1.6
| 2006-01-30
|-
| {{Version|o|1.2}}
| 2006-02-12
| 1.2.6
| 2006-04-08
|-
| {{Version|o|1.3}}
| 2006-04-18
| 1.3.3
| 2006-05-16
|-
| {{Version|o|1.4}}
| 2006-06-10
| 1.4.4.5
| 2008-07-16
|-
| {{Version|o|1.5}}
| 2007-02-14
| 1.5.6.6
| 2008-12-17
|-
| {{Version|o|1.6}}
| 2008-08-17
| 1.6.6.3
| 2010-12-15
|-
| {{Version|o|1.7}}
| 2010-02-13
| 1.7.12.4
| 2012-10-17
|-
| {{Version|o|1.8}}
| 2012-10-21
| 1.8.5.6
| 2014-12-17
|-
| {{Version|o|1.9}}
| 2014-02-14
| 1.9.5
| 2014-12-17
|-
| {{Version|o|2.0}}
| 2014-05-28
| 2.0.5
| 2014-12-17
|-
| {{Version|o|2.1}}
| 2014-08-16
| 2.1.4
| 2014-12-17
|-
| {{Version|o|2.2}}
| 2014-11-26
| 2.2.3
| 2015-09-04
|-
| {{Version|o|2.3}}
| 2015-02-05
| 2.3.10
| 2015-09-29
|-
| {{Version|o|2.4}}
| 2015-04-30
| 2.4.12
| 2017-05-05
|-
| {{Version|o|2.5}}
| 2015-07-27
| 2.5.6
| 2017-05-05
|-
| {{Version|o|2.6}}
| 2015-09-28
| 2.6.7
| 2017-05-05
|-
| {{Version|o|2.7}}
| 2015-10-04
| 2.7.6
| 2017-07-30
|-
| {{Version|o|2.8}}
| 2016-03-28
| 2.8.6
| 2017-07-30
|-
| {{Version|o|2.9}}
| 2016-06-13
| 2.9.5
| 2017-07-30
|-
| {{Version|o|2.10}}
| 2016-09-02
| 2.10.5
| 2017-09-22
|-
| {{Version|o|2.11}}
| 2016-11-29
| 2.11.4
| 2017-09-22
|-
| {{Version|o|2.12}}
| 2017-02-24
| 2.12.5
| 2017-09-22
|-
| {{Version|o|2.13}}
| 2017-05-10
| 2.13.7
| 2018-05-22
|-
| {{Version|o|2.14}}
| 2017-08-04
| 2.14.6
| 2019-12-07
|-
| {{Version|o|2.15}}
| 2017-10-30
| 2.15.4
| 2019-12-07
|-
| {{Version|o|2.16}}
| 2018-01-17
| 2.16.6
| 2019-12-07
|-
| {{Version|co|2.17}}
| 2018-04-02
| 2.17.6
| 2021-03-09
|-
| {{Version|co|2.18}}
| 2018-06-21
| 2.18.5
| 2021-03-09
|-
| {{Version|co|2.19}}
| 2018-09-10
| 2.19.6
| 2021-03-09
|-
| {{Version|co|2.20}}
| 2018-12-09
| 2.20.5
| 2021-03-09
|-
| {{Version|co|2.21}}
| 2019-02-24
| 2.21.4
| 2021-03-09
|-
| {{Version|co|2.22}}
| 2019-06-07
| 2.22.5
| 2021-03-09
|-
| {{Version|co|2.23}}
| 2019-08-16
| 2.23.4
| 2021-03-09
|-
| {{Version|co|2.24}}
| 2019-11-04
| 2.24.4
| 2021-03-09
|-
| {{Version|co|2.25}}
| 2020-01-13
| 2.25.5
| 2021-03-09
|-
| {{Version|co|2.26}}
| 2020-03-22
| 2.26.3
| 2021-03-09
|-
| {{Version|co|2.27}}
| 2020-06-01
| 2.27.1
| 2021-03-09
|-
| {{Version|co|2.28}}
| 2020-07-27
| 2.28.1
| 2021-03-09
|-
| {{Version|co|2.29}}
| 2020-10-19
| 2.29.3
| 2021-03-09
|-
| {{Version|co|2.30}}
| 2020-12-27
| 2.30.2
| 2021-03-09
|-
| {{Version|co|2.31}}
| 2021-03-15
| 2.31.1
| 2021-04-02
|-
| {{Version|co|2.32}}
| 2021-06-06
| 2.32.5
| 2023-01-17
|-
| {{Version|co|2.33}}
| 2021-08-16
| 2.33.1
| 2021-10-12
|-
| {{Version|co|2.34}}
| 2021-11-15
| 2.34.6
| 2023-01-17
|-
| {{Version|co|2.35}}
| 2022-01-25
| 2.35.6
| 2023-01-17
|-
| {{Version|co|2.36}}
| 2022-04-18
| 2.36.4
| 2023-01-17
|-
| {{Version|co|2.37}}
| 2022-06-27
| 2.37.5
|2023-01-17
|-
| {{Version|co|2.38}}
| 2022-10-02
| 2.38.3
|2023-01-17
|-
| {{Version|co|2.39}}
| 2022-12-12
| 2.39.1
|2023-01-17
|-
| {{Version|c|2.40}}
| 2023-03-14
| 2.40.0
|2023-03-14
|-
| colspan="4" | <small>{{Version |l |show=111110}}</small>
|}

== GUI ==
깃은 많은 GUI를 지원하는 것이 특징이다. 현재 [[소스트리]], GitHub Desktop 등의 여러 GUI를 사용할 수 있다.

== 웹 인터페이스 ==
[[파일:Gitweb.png|섬네일|commit [[diff]]를 보여주는 깃웹 인터페이스의 스크린샷.]]
깃을 위한 다양한 웹 인터페이스를 사용할 수 있다.

* [https://git.zx2c4.com/cgit Cgit]: C로 작성된 깃 저장소용 웹 프론트엔드.
* [https://web.archive.org/web/20170812111934/https://git.wiki.kernel.org/index.php/Gitweb Gitweb]: [[펄]]로 작성된 깃 프론트엔드.
* [https://gogs.io/ Gogs]: 인증, 이슈 핸들링, 포크 등의 수많은 기능이 포함된 깃 프론트엔드. [[Go (프로그래밍 언어)|Go]]로 작성됨.
* [https://gitea.io Gitea]: Gogs의 포크.
* [https://web.archive.org/web/20180611002904/https://github.com/klaussilveira/gitlist Gitlist]: [[Php]]로 작성된 [[부트스트랩|부트스트랩 프레임워크]]를 사용하는 깃 저장소 뷰어.

== 터미널 인터페이스 ==
명령 프롬프트를 갖는 터미널 인터페이스는 또는 [[콘솔]] 인터페이스는 GUI 버전이나 웹 인터페이스와 함께 깃 서버에 접속하는 깃 클라이언트 들이다. [[GNU nano]]나 [[Vim]] 같은 편집기를 포함한다. 콘솔은 윈도우 터미널이나 [[셸]] 형태의 [[배시 (유닉스 셸)|Bash]]를 사용한다.
보안을 위해 [[OpenSSL]]이나 윈도우즈 보안 채널 라이브러리(The native Windows Secure Channel library)를 사용한다.
Git Bash의 경우 [[MinTTY]]를 기본으로 터미널 [[에뮬레이터]]로 사용한다.<ref>[http://rogerdudler.github.io/git-guide/ git-The simple guide]</ref><ref>https://git-scm.com/</ref><ref>[https://nolboo.kim/blog/2013/10/06/github-for-beginner/ 완전초보를위한깃허브] {{웨이백|url=https://nolboo.kim/blog/2013/10/06/github-for-beginner/ |date=20180527023940 }}</ref>

==설치 예==
[[리눅스]]에 설치<ref>[참고](Reference Manual -Git ,Pro Git book -written by Scott Chacon and Ben Straub and published by Apress, Creative Commons Attribution Non Commercial Share Alike 3.0 license. Free Online and Print versions-Amazon.com)https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-Git-%EC%A0%80%EC%9E%A5%EC%86%8C-%EB%A7%8C%EB%93%A4%EA%B8%B0</ref>
: > sudo [dnf(RPM계열) 또는 apt(deb계열)] install git-all
설치 확인
: > git --version
도움말 보기
: > git help

==사용 예==
타겟(target) 소프트웨어 빌드용 다운로드 명령어
:> git clone [주소]
파일 수정후 커밋 (필수사항)
:> git commit [파일명]
수정 파일 업로드(리모트 업로드시 사전 로컬 commit 필수)
:> git push

==주요 기본 명령어==
{| class="wikitable"
|-
| 명령어 || 실행 || 비고
|-
| git branch  || 현재 브랜치 이름 || 
|-
| git pull  || git fetch + git merge  || git diff 생략
|-
| git log  || commit list (history) || 종료(나가기) q
|-
| git show  || 최근 커밋 정보 || git show [로그 일련번호]
|}
== 같이 보기 ==
{{위키공용분류}}
* [[GitLab]]
* [[GitHub]]
* [[머큐리얼]]
* [[Bazaar (소프트웨어)|Bazaar]]
* [[버전 관리]]
* {{언어링크|en}} [[:en:List of revision control software|버전 관리 소프트웨어 목록]]
* {{언어링크|en}} [[:en:Comparison of revision control software|버전 관리 소프트웨어 비교]]

== 각주 ==
{{각주}}

== 외부 링크 ==
* {{공식 웹사이트}}
* {{openhub|git|Git}}

{{버전 관리 소프트웨어}}
{{전거 통제}}

[[분류:깃 (소프트웨어)| ]]
[[분류:자유 버전 관리 소프트웨어]]
[[분류:C로 작성된 자유 소프트웨어]]
[[분류:펄로 작성된 자유 소프트웨어]]
[[분류:2005년 소프트웨어]]
[[분류:GPL 라이선스 소프트웨어]]
[[분류:리누스 토르발스]]
[[분류:분산 버전 관리 시스템]]
[[분류:버전 관리 시스템]]