Git:便利なコマンド

By JoeVu, at: 2023年11月7日8:16

Estimated Reading Time: __READING_TIME__ minutes

GIT: Useful commands
GIT: Useful commands

Gitは、開発者がコードリポジトリを効率的に管理するのに役立つ強力なバージョン管理システムです。Gitのプロフェッショナルであっても、バージョン管理を始めたばかりであっても、このガイドでは、基本的なGitコマンドと、Gitワークフローを改善するための便利なヒントやコツを網羅しています。

 

1. 基本的なGitコマンド

 

リポジトリ

ローカルGitリポジトリの初期化:

git init

既にコードがあり、新しい変更をリモート/リポジトリにプッシュしたい場合

git remote add origin https://github.com/glinteco-com/...
git remote add non_existed_remote https://non_existed_remote.com/glinteco-com/...
git remote remove non_existed_remote  # リモートを削除


公開リポジトリのクローン

git clone [repo_url]  

プライベートリポジトリのクローン

git clone ssh://[email protected]/[username]/[repository-name].git

多くの初心者開発者が遭遇する問題の1つは、sshトークンが原因で、アクセス権限を持っているプライベートリポジトリをクローンできないことです。簡単な解決策は、パーソナルトークンを生成して以下を実行することです。

git clone https://[email protected]/glinteco-com/Samples
[トークンを入力]


リポジトリの状態確認

git status

 

ステージングされた変更

特定のファイルをステージングエリアに追加:

git add [file-name]

新規ファイルと変更済みファイルをすべてステージングエリアに追加:

git add -A

 

変更のコミット

ステージングされた変更を説明的なメッセージとともにコミット:

git commit -m "[コミットメッセージ]"

 

ファイルまたはフォルダの削除

リポジトリと作業ディレクトリからファイル(またはフォルダ)を削除:

git rm -r [file-name.txt]

 

ブランチの管理

アクティブなブランチにアスタリスクが付いたすべてのローカルブランチをリスト表示:

git branch

リモートブランチを含むすべてのブランチをリスト表示:

git branch -a

新しいブランチを作成:

git branch [ブランチ名]

ブランチを削除:

git branch -d [ブランチ名]

強制的にブランチを削除:

git branch -D [ブランチ名]

リモートブランチを削除:

git push origin --delete [ブランチ名]

新しいブランチを作成して切り替える:

git checkout -b [ブランチ名]

リモートブランチをクローンして切り替える:

git checkout -b [ブランチ名] origin/[ブランチ名]

ローカルブランチの名前を変更:

git branch -m [古いブランチ名] [新しいブランチ名]

別のブランチに切り替える:

git checkout [ブランチ名]

最後にチェックアウトしたブランチに切り替える:

git checkout -

ファイルに加えた変更を破棄し、最後にコミットされた状態に戻す:

git checkout -- [file-name.txt]

ブランチをアクティブなブランチにマージ:

git merge [ブランチ名]

ソースブランチをターゲットブランチにマージ:

git merge [ソースブランチ] [ターゲットブランチ]

リモートブランチを削除:

git push origin --delete [ブランチ名]

現在のブランチの名前を変更

git branch -m [新しい名前]

 

変更のスタッシュ

ブランチを切り替えたり、他の作業を行うために、作業ディレクトリの変更をスタッシュ:

git stash

すべてのスタッシュされたエントリを削除:

git stash clear

 

変更のプッシュ

ブランチをリモートリポジトリにプッシュ:

git push origin [ブランチ名]

必要に応じてブランチを関連付けて、リモートリポジトリに変更をプッシュ:

git push -u origin [ブランチ名]

以前に関連付けられたブランチのリモートリポジトリに変更をプッシュ:

git push

 

変更の更新とプル

リモートリポジトリから最新のコミットにローカルリポジトリを更新:

git pull

リモートリポジトリの特定のブランチから変更をプル:

git pull origin [ブランチ名]

 

設定の管理

グローバルなGitユーザー名とメールアドレスを設定:

git config --global user.name "joevu"

git config --global user.email "[email protected]"

グローバルなGit設定を表示:

git config --global --list

特定のリポジトリのローカルなGitユーザー名とメールアドレスを設定:

git config --local user.name "joevu"

git config --local user.email "[email protected]"

特定のリポジトリのローカルなGit設定を表示:

git config --local --list

 

2. Gitのヒントとコツ

 

Gitプリコミットフックをスキップする

-nまたは--no-verifyオプションを使用して、Gitプリコミットフックをスキップできます。

git commit -n -m 'Update' # または git commit -m 'Update' -n

 

Git履歴の調査

Git履歴のログを表示:

git log

コミット統計を含む要約されたGit履歴を表示:

git log --summary

Git履歴の簡潔な1行表示を表示:

git log --oneline

 

マージ前の変更のプレビュー

マージする前に、2つのブランチ間の変更を比較:

git diff [ソースブランチ] [ターゲットブランチ]

 

Git blameによる変更の調査

git blameを使用して、特定のコード行に変更を加えた人を特定:

git blame path/to/file

 

コミット変更のrevert

IDで特定のコミットをrevert:

git revert [commitid]

 

高度なrebase

指定されたメインブランチ(例:develop)から現在のブランチをrebase:

git rebase -i develop

 

Git履歴の比較

特定のファイルの2つのコミット間の変更を比較:

git diff $start_commit..$end_commit -- path/to/file

 

Git stashの使用

一時的な変更をstashし、後で作業ディレクトリにpopする:

git stash save

git stash pop

 

他のブランチからコミットを選択する

git reflogまたはgit logを使用して、選択したい他のブランチからgitコミットハッシュを見つけます。その後、以下を実行します。

git cherry-pick hash_value

 

3. Gitブランチモデル - nvieのフロー

 

成功するGitブランチモデルには、Vincent DriessenのnvieのGitブランチモデルに従うことを検討してください。このモデルは、プロジェクトのGitブランチを管理するための明確で効率的な構造を提供し、開発チームのスムーズなワークフローを確保します。

このモデルでは、次のブランチを提案しています。

 

  • メインブランチ:

    • master/main:本番対応のコードを表します。新しいバージョンをリリースする準備が整ったら、developブランチからのみマージします。
       

    • staging:ステージング対応(uat対応)のコードを表します。新しいバージョンをリリースする準備が整ったら、developブランチからのみマージします。
       

    • develop:機能ブランチが変更をマージして、次のリリースの準備とテストを行う主な統合ブランチです。
       

  • サポートブランチ:

    • 機能ブランチ:これらのブランチは、新しい機能やバグ修正のために作成されます。developから分岐し、作業が完了したらマージされます。
       

    • リリースブランチ:developから新しいリリースの準備をします。このブランチでは、バグ修正と最終調整のみが許可されます。
       

    • ホットフィックスブランチ:本番バージョンの重大な問題に対処するためにmasterから作成されます。masterとdevelopの両方にマージされます。
       

Vincent Driessenのモデルは、Gitプロジェクトでのコラボレーション、リリース管理、および問題追跡を簡素化し、開発プロセスを合理化しようとするチームにとって貴重なリファレンスになります。

これらの基本的なGitコマンド、ヒント、およびnvieのGitブランチモデルの紹介により、バージョン管理とコラボレーションの取り組みを強化し、より熟練したGitユーザーになるためのスキルと知識が得られます。

Tag list:
- git commands
- git remote
- gitlab
- git log
- git
- git pull
- git branch
- github
- git commit
- git reflog
- git cheatsheet
- git checkout
- git rebase
- git push

Related

Python Experience

ChatGPT:教育の未来

Read more
Project Management

Read more
Python

Read more

Subscribe

Subscribe to our newsletter and never miss out lastest news.