0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Gitを使う上での選択肢

Posted at

Gitを学習する際に選ばなければならない選択肢はいくつかあります。目的や環境によって異なりますが、主な選択肢をカテゴリごとに整理しました。


Gitのインストール方法

  • 公式サイトからダウンロードGit公式
  • パッケージマネージャーを利用
    • macOS: brew install git
    • Linux: sudo apt install git / sudo dnf install git
    • Windows: Chocolatey (choco install git) / Scoop (scoop install git)

使用するGitの操作方法

  • コマンドライン(CLI)
    • git init, git add, git commit, git push などを手動で入力
    • メリット: 高い柔軟性、トラブルシューティングしやすい
    • デメリット: 最初は学習コストが高い
  • GUIクライアント
    • GitKraken, Sourcetree, GitHub Desktop など
    • メリット: 直感的に操作できる
    • デメリット: コマンドの知識が身につきにくい
  • IDE統合
    • VS Code, IntelliJ, Eclipse などに内蔵されたGit機能を利用
    • git コマンドを直接打たずにバージョン管理可能

Gitのホスティングサービス

  • GitHub
    • 世界最大のGitホスティングサービス、オープンソースに強い
  • GitLab
    • 自社でホスティング可能なCI/CDに強いプラットフォーム
  • Bitbucket
    • Atlassian製、JIRAとの連携が強力
  • 自社サーバー(オンプレミス)
    • git init --bare を使い、SSH経由で管理

リポジトリの運用戦略(ブランチ戦略)

  • Git Flow
    • main(または master)と develop を中心に feature, release, hotfix ブランチを管理
  • GitHub Flow
    • main ブランチに feature ブランチを作成し、プルリクエスト(PR)でマージ
  • GitLab Flow
    • 環境ごと(開発、ステージング、本番)にブランチを用意
  • Trunk Based Development
    • main ブランチに直接マージし、短期間でデプロイ

マージ戦略

  • Merge commit (git merge)
    • ブランチの変更をコミットごとに残して統合
  • Fast-forward merge
    • 履歴を直線的に保つ(git merge --ff-only
  • Squash and merge
    • 複数のコミットを1つにまとめてマージ(git merge --squash
  • Rebase (git rebase)
    • ブランチの履歴を整理しながら統合

コミットメッセージのルール

  • 自由形式
    • 適当に fix bug などを書く
  • コミットメッセージ規約を採用

リモートリポジトリとの連携方法

  • HTTPS
    • git clone https://github.com/user/repo.git
    • 簡単だが、毎回認証が必要
  • SSH
    • git clone git@github.com:user/repo.git
    • 事前にSSHキーを設定する必要があるが、一度設定すれば便利
  • Git Credential Manager(GCM)
    • 認証情報を保存し、HTTPSでも再認証不要にする

変更履歴の管理方法

  • コミットをやり直す
    • git commit --amend
  • 履歴を整理する
    • git rebase -i
  • 変更を取り消す
    • git reset --hard(完全削除)
    • git revert(取り消しコミットを作成)
  • 特定のファイルだけ戻す
    • git checkout <commit_hash> -- file.txt

トラブルシューティング方法

  • ブランチを間違えて作業した
    • git stash で変更を一時退避し、正しいブランチに移動
  • 間違えて git push した
    • git push --force(注意!)
  • 過去の状態に戻りたい
    • git reflog で過去の状態を確認し、git reset --hard で戻る
  • コンフリクトが発生
    • git merge の際に <<<<<< HEAD の部分を手動で修正し、再コミット

CI/CDとの連携

  • GitHub Actions
    • GitHub上でCI/CDを構築
  • GitLab CI/CD
    • .gitlab-ci.yml を使ってパイプラインを設定
  • Jenkins, CircleCI, Travis CI
    • 外部のCIツールを利用

まとめ

Gitを学習する際に選ぶべき選択肢はたくさんありますが、最初は以下の流れを意識すると良いでしょう:

  1. CLI or GUI を選ぶ(CLI推奨)
  2. Gitのホスティングサービス を決める(GitHubが一般的)
  3. ブランチ運用ルール を選ぶ(GitHub Flowがおすすめ)
  4. マージ戦略 を理解する(Fast-forward + Squash and merge)
  5. 変更履歴の管理方法 を学ぶ(commit --amend, rebase, reset
  6. コンフリクト解決 を実践する
  7. CI/CD連携 まで学ぶと実務で活用しやすい

どの選択肢を選ぶかはプロジェクトやチームの方針によりますが、最初は 基本的なGit操作 + GitHub を学ぶのがベストです!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?