分散型バージョン管理システム「Git(ギット)」についての備忘録
| No | URL | 備考 |
|---|---|---|
| 1 | SubversionユーザがGitを使った時に勘違いした5つのこと | |
| 2 | GitとSubversionの構造的な違い | |
| 3 | VSSからGitに乗り換えてわかったGitのデメリット | |
| 4 | ドキュメントのバージョン管理はSVNとGit、どっちがいいの? | |
| 5 | Gitとは? – Gitの仕組みを速攻で理解する |
| No | URL | 備考 |
|---|---|---|
| 1 | Gitの記事 | コマンドとか |
| 2 | Gitのfetchコマンドについて | |
| 3 | 削除の方法(TortoiseGit) | 削除対象をaddしたイメージなので、この後コミット→プッシュが必要 |
| 4 | 【永久保存版】Gitのあらゆるトラブルが解決する神ノウハウ集を翻訳した |
| No | URL | 備考 |
|---|---|---|
| 1 | Git入門(GitBucket と SourceTree の準備) | “データ保存場所”欄の部分。TeraTerm接続ユーザのホームディレクトリに作成された .gitbucketディレクトリをtarballにすればよさそう。別途DBバックアップは必要かも。 |
| No | URL | 備考 |
|---|---|---|
| 1 | TortoiseGitの使い方 | |
| 2 | 【TortoiseGit】コマンド不要でGit管理 | |
| 3 | TortoiseGit によるバージョン管理を使う | |
| 4 | 基本的なGitコマンドと、対応するTortoiseGitの操作まとめ | |
| 5 | TortoiseGit でコミットを一つにまとめる |
** ベタ書きエリア ** ■ブランチ名 Dev_案件名 →案件フォルダ名に準ずる。(PM提案の年度_連番_案件名) ・Git-it:ターミナルでのGit習得用としては良いかもね。 ◆merge:ファストフォワード を禁止する設定 git config --global merge.ff false ************************************************************ ■Git概要 Gitは分散型バージョン管理システムであり、Linuxカーネルの開発者である、リーナス・トーバルズ氏によって開発されました。 もともとはLinuxカーネルのソースコード管理用に開発されたのですが、現在はさまざまなプロジェクトで採用されています。 <余談:誕生の経緯> ある日、Linuxカーネル開発で利用していたバージョン管理システムのライセンスが変更され、使用できなくなってしまいました。 そのため、現存するバージョン管理システムにて代替品を検討しましたが、世界のトップクラスと言える高度なLinuxの要求水準を満たすバージョン管理システムがありませんでした。 ないものは仕方がないので、自分たちでバージョン管理システムを作ってしまおう! というのがGitの始まりです。 現存するバージョン管理システムに対し納得がいかなかった点としては、 複数人で開発を行う際、ブランチというものを切って分散して開発ができるのですが、そのマージ(統合)にはすごく時間がかかってしまうものばかりでした。 そのため、Gitでは開発が迅速に行えるように開発されています。 ・早い! ・シンプルな設計 ・ブランチを切ることで並列での開発が可能 ■GitBucket概要 Webブラウザからサーバー上のGitリポジトリを管理できるツールです(GitLabも同様)。 それ以外にも、開発者やチームが効率的に開発できるよう、課題管理(Issues)やWikiなどの機能も有しています。 GitBucketは"たけぞう"氏という個人によって開発されており、無料で、容易に導入可能であることが特徴です。 (GitLabは企業(GitLab社)によって開発されています) ■Gitの基本的な仕組み Gitは管理対象のファイルをバージョン毎に保存しており、その保存方法はスナップショット(その時点の状態を、そのまま丸ごと保存)となっています。 ちなみに他のバージョン管理ツール(Subversion(SVN)など)では、以前の変更分である差分のみを保存しているものが多いです。 差分のみの保存方式の場合、ブランチを切り替える際は毎回その変更分を計算する処理が入るため、どうしても重くなってしまう特徴があります。 →大規模プロジェクトに不向き その点、GITにおけるブランチの作成や切り替えは、スナップショットを見ているポインタを切り替えるだけのため高速に動作します。 ■Gitの操作の流れ Git研修の絵。 ワークツリー→(スナップショットを記録)→ローカルリポジトリ→(GitHubへアップ)→GitHub 的なやつ ■用語 ・リモートリポジトリ:オンライン上のバージョン管理対象ファイル置き場。履歴データ(スナップショット)の保管場所のこと。 ・ローカルリポジトリ:開発者の端末上にある、履歴データ(スナップショット)の保管場所のこと。 ・ワークツリー:手元の作業場 ・ステージ:コミットする変更を準備する場所 →これがあることで、自分で記録したいものだけを選別することができる ・コミット:変更(スナップショット)を記録すること →リポジトリに保管すること ・クローン:リモートリポジトリの内容をローカルリポジトリにコピーする ・プッシュ:ローカルリポジトリの内容をリモートリポジトリにアップすること ・HEAD:今自分がいるリポジトリのコミットを指す ・ブランチ:並行して複数機能を開発するためにあるもの →他者の変更の影響を受けずに開発ができる仕組み コミットを指し示したポインタ ・マージ:他の人の変更内容を取り込む作業のこと ・コンフリクト:複数人が同じ箇所で別々な変更をした際に、どの変更を優先したら良いのか分からない状態のこと ・リベース:変更を統合する際に、履歴をきれいに整える 補足:リベースとは、re・baseであり、ベースとなる基点(親コミット)を新しくしているという意味 ・タグ:コミットを参照しやすくするために分かり易い名前を付けること よくリリースポイントに使われる ■補足 ・プッシュ時はリベースでコミット内容を一纏めにしてからやってもらうこと →コミットログをキレイに保つため ■その他 ・現行の手順書に追加してほしい内容 ・TortoiseGit上での削除手順 ・ブランチの削除 ・ファイルリネーム ・ファイル削除 →参考サイト:https://yun-kichi.hatenadiary.org/entry/20100104/1262609110 ・このサイト記事を参考にしよう! https://mag.osdn.jp/09/06/19/0340248 ************************************************************