YukidokeWiki

備忘録。とにかく忘れないうちにメモれ。

ユーザ用ツール

サイト用ツール


dev:git.html

Git

参考リンク集

Gitとは

GitとSVNの違い

Git運用

Git Mergeについて

Git Reveteについて

Git pullについて

Gitコマンド

NoURL備考
1Gitの記事コマンドとか
2Gitのfetchコマンドについて
3削除の方法(TortoiseGit)削除対象をaddしたイメージなので、この後コミット→プッシュが必要
4【永久保存版】Gitのあらゆるトラブルが解決する神ノウハウ集を翻訳した


権限設定

バックアップ

NoURL備考
1Git入門(GitBucket と SourceTree の準備)“データ保存場所”欄の部分。TeraTerm接続ユーザのホームディレクトリに作成された .gitbucketディレクトリをtarballにすればよさそう。別途DBバックアップは必要かも。


TortoiseGitの使い方

メモ

  • タグかコメント、ブランチ名辺りでバージョンを明記する。
    イメージ「X.Y.Z」(2.0.1とか
    • X:メジャー(見た目や操作性に影響を及ぼすような大きな変更がある場合)
    • Y:マイナー(細かな機能向上などの場合)
    • Z:リビジョン(ちょっとしたバグ修正のような場合)
  • ブランチの切る数
    • ネットワークブランチ
      • マスターブランチ:大元
      • 案件ブランチ:案件用のマスターブランチ。案件の最終コミット先。
      • 開発用ブランチ:レビュー用ブランチ。個人用ブランチからpushしてもらいレビューする。
    • ローカルブランチ
      • 個人用ブランチ:個人用
** ベタ書きエリア **
■ブランチ名
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

************************************************************
dev/git.html.txt · 最終更新: 2020/02/10 21:43 by yukidoke1815

ページ用ツール