관리 메뉴

IT 컴퓨터공학 자료실

Git(ギット)에 대해 본문

etc.. 기타 카테고리 2/영어 번역 & 일본어 번역

Git(ギット)에 대해

윤맨1 2015. 7. 14. 23:20


 gitギットプログラムのソースコードなどの変更履歴記録追跡するための分散型バージョン管理システムであるLinuxカーネルのソースコード管理いるためにリーナス・トーバルズによって開発されそれ以降ほかのくのプロジェクトで採用されているLinuxカーネルのような巨大プロジェクトにも対応できるように動作速度重点かれている現在のメンテナンスは濱野純 (Junio C Hamano) 担当している

gitではユーザのホームディレクトリに全履歴んだリポジトリの完全複製られるしたがってネットワークにアクセスできないなどの理由中心リポジトリにアクセスできない環境でも履歴調査変更記録といったほとんどの作業うことができるこれが分散型ばれる理由である

Git은 프로그램의 소스 코드 등의 변경 내역을 기록하고 추적하기 위한 분산 버전관리 시스템이다. 원래는 Linux 커널의 소스 코드 관리에 이용하기 위해 리누스 토발스에 의해 개발 된 이후 다른 많은 프로젝트에서 사용되고 있다. Linux 커널과 같은 거대한 프로젝트에도 대응할 수 있도록 동작 속도에 중점을 두고 있다.

 


Git은 각 사용자의 홈 디렉토리의 모든 기록을 저장소 안에 완전히 복제한다. 따라서 네트워크 액세스하지 않고 중심 저장소에 액세스 할 수 없는 환경이라도 기록 조사 및 변경 기록 등 대부분의 작업을 할 수 있다. 이것이 분산형이라고 불리는 이유이다.


 

作業

워크 플로우


 gitは分散型のソースコード管理システムであるため、リモートサーバ等にある中心リポジトリの完全なコピーを手元(ローカル環境)に作成して、そのローカルリポジトリを使って作業を行う。

一般的な開発スタイルでは、大雑把に言えば、以下のようなステップの繰り返しで作業が行なわれる:

  1. リモートサーバ等にある中心リポジトリをローカルに複製する (git clone)。
  2. ローカルでコンテンツの修正・追加・削除を行い、ローカルリポジトリに変更履歴を記録する (git commit)。必要に応じて過去の状態の閲覧や復元などを行う。場合によってはこのステップを何度か繰り返す。
  3. 中心リポジトリに加えられた他人による変更をローカルに反映させる (git pull)。他人の変更内容が自分の変更内容と衝突することもある。衝突は、gitが自動で解決できることもあれば、手動で解決しなければならないこともある (git merge)。
  4. ローカルの変更内容を中心リポジトリに反映させる (git push)。ステップ2.へ戻る。

リポジトリ間の通信 (clone, pull, push) では以下のプロトコルが使用できる

  • ローカルファイルシステム
  • SSH
  • git(認証機能なし)
  • HTTP/HTTPSWebDAV)(pushするためにはWebDAVが必要)

rsyncFTP/FTPSは、もはや使うべきではないとされている

Git은 분산 형 소스 코드 관리 시스템이기 때문에 원격 서버 등의 중심 저장소의 전체 복사본을 수중(로컬 환경)에 작성하여 로컬 저장소를 사용하여 작업을 한다.

 

일반적인 개발 스타일은 대략적으로 말하면 다음과 같은 단계로 구성될 수 있다.

1. 원격 서버 등의 중심 저장소를 로컬에 복제 (git clone).

2. 로컬 콘텐츠를 수정 · 추가 · 삭제하고, 로컬 저장소에 변경 내역을 기록한다 (git commit). 필요에 따라 과거의 상태 검색 및 복원 등을 실시한다.

3. 중앙 리포지토리에 추가 한 타인에 의한 변경을 로컬에 반영 (git pull). 타인의 변경 내용이 자신의 변경 내용과 충돌 할 수도 있다. 충돌은 Git이 자동으로 해결할 수 있는 경우도 있으며, 수동으로 해결해야하는 경우도 있다 (git merge).

4. 로컬 변경 내용을 중심 저장소에 반영 (git push). 2 단계로 돌아간다.

 

저장소 간 통신 (clone, pull, push)은 다음 프로토콜을 사용할 수 있다.

 

로컬 파일 시스템

SSH

Git ( 인증 기능 없음)

HTTP / HTTPS ( WebDAV ) (push하기 위해서는 WebDAV 필요)

 

設計

Git의 설계

 

git設計BitKeeperMonotoneになっている[8][9]々のgitはローレベルなエンジンとして設計されていたがこれは開発者CogitoStGITのようなフロントエンドを容易開発できるようにすることを目的としていた[10]現在ではgitのコア自体もユーザから直接利用できるようになっている[11]

git設計にはリーナスが大規模プロジェクトのメンテナンスをった経験ファイルシステムのパフォーマンスにする知識また実用性のあるシステムを短期間作成しなければならないというった必要性BitKeeper参照反映されているこれらの影響以下のような実装れている

ノンリニアな開発スタイルにする強力なサポートgitではブランチやマージが高速えるまたノンリニアな開発履歴可視化・ナビゲートするための専用のツールを同梱しているまたツリーにする1変更して複数回のマージが発生するという前提いているがこれは変更点複数のレビュアーによってレビューされることを想定しているためである



Git 디자인은 BitKeeper 와 Monotone이 바탕으로 되어있다원래 Git은 로우 레벨 엔진으로 설계되어 있었지만이것은 다른 개발자가 Cogito 과 StGIT 같은 프론트엔드를 쉽게 개발할 수 있도록 하는 것을 목적으로 하고 있었다현재에는 Git의 코어 부분도 사용자가 직접 이용할 수 있게 되었다.

Git의 설계는 리누스가 대규모 프로젝트의 유지 · 보수를 수행 한 경험과 파일 시스템의 성능에 대한 깊은 지식또한 실용성 있는 시스템을 단기간에 작성해야한다는 절박한 필요성이 반영되어 있다.

이러한 영향은 다음과 같은 형태로 구현 나타나고 있다.



分散開発分散型バージョン管理システムDarcsBitKeeperMercurialSVKBazaarMonotone同様gitでも々の開発者がリポジトリの完全なコピーをローカルに保持しており各開発者った変更のリポジトリへコピーされるこれらの変更しい開発用ブランチとしてインポートされるまたローカルな開発用ブランチへのマージも可能である

HTTPFTPrsyncgitプロトコルssh利用したトンネリングも可能使用したリポジトリの配布可能またCVSサーバのエミュレーション機能使用すれば既存CVSクライアントやIDEのプラグインからgitリポジトリへアクセスできる

git-svn使用すればSubversionおよびsvkのリポジトリを直接操作できる

きなプロジェクトにおける処理効率化git非常高速かつスケーラブルになるよう記述されている[12]Mozillaによってわれたパフォーマンステストではのリビジョンコントロールシステムと比較して10処理によっては100倍高速動作することがされた[13][14]

ツールキットされた設計gitC言語かれたプログラム一式それらのラッパーとなる何本かのシェルスクリプトで構成されている[15]gitWindows移植する過程シェルスクリプトのほとんどはC言語されたしかし現在でも複数のコンポーネントをげることで複雑処理容易えるような設計になっている[16]




 

비선형 개발 스타일에 대한 강력한 지원. Git에서 분기 및 병합이 빠르게 할 수 있다. 또한 비선형 개발 기록을 시각화 · 탐색하기 위한 전용 도구를 포함하고 있다. 또한 트리에 대한 1 회 변경에 대해 여러 차례의 병합이 발생한다는 전제를 두고 있지만, 이것은 변경 사항이 여러 작성자에 의해 검토되는 것을 기대하고 있기 때문이다.

분산 개발. 다른 분산 버전 관리 시스템 ( Darcs , BitKeeper , Mercurial , SVK , Bazaar , Monotone ) 뿐만 아니라 Git에서도 각각의 개발자가 저장소의 전체 로컬 복사본을 보유하고 있으며, 각 개발자가 행한 변경은 다른 저장소로 저장된다. 이러한 변화는 새로운 개발 브랜치로 가져된다. 또한 로컬 개발 브랜치에 병합도 가능하다.

 

HTTP , FTP , rsync , Git 프로토콜 ( ssh 를 이용한 터널링도 가능)을 사용하여 저장소의 배포가 가능하다. 또한 CVS 서버의 에뮬레이션 기능을 사용하면 기존의 CVS 클라이언트와 IDE 플러그인에서 Git 저장소에 접근 할 수있다.

 

git-svn을 사용하면 Subversion svk 저장소를 직접 조작 할 수 있다.

 

큰 프로젝트에서 처리에 효율적으로 설계되었다. Git은 또한 매우 빠르고 또한 확장성이 뛰어나도록 작성되었다. Mozilla 의해 시행된 성능 테스트에서는 다른 형상관리 시스템과 비교하여 10 , 처리 테스트는 100 배 빠르게 동작할 수 있음이 드러났다.

 

툴킷 된 디자인. GitC 언어로 작성된 프로그램 세트와 그 래퍼가되는 몇 개의 쉘 스크립트로 구성되어있다. GitWindows로 포팅하는 과정에서 쉘 스크립트의 대부분은 C 언어로 재 작성되었다. 그러나 현재에도 여러 구성 요소를 연결하는 것으로 복잡한 처리를 쉽게 할 수 있도록 설계되어있다.

 



출처 : https://ja.wikipedia.org/wiki/Git