- Q1
リモートリポジトリを追加するコマンドはどれですか?
ANSWERgit remote add 名前 URLクリックして解説を表示EXPLANATIONgit remote add 名前 URLでリモートリポジトリを追加します。慣例として最初のリモートはoriginと名付けます。 - Q2
登録されているリモートリポジトリの一覧を表示するコマンドはどれですか?
ANSWERgit remoteクリックして解説を表示EXPLANATIONgit remoteまたはgit remote -vでリモートリポジトリの一覧を表示します。-vオプションでURLも表示されます。 - Q3
リモートリポジトリの変更をローカルに取得するコマンドはどれですか?
ANSWERgit fetchクリックして解説を表示EXPLANATIONgit fetchでリモートの変更をローカルに取得します。作業ディレクトリには反映されず、リモート追跡ブランチが更新されます。 - Q4
git pullは何をしますか?ANSWERリモートの変更を取得してマージするクリックして解説を表示EXPLANATIONgit pullはgit fetchとgit mergeを組み合わせたコマンドで、リモートの変更を取得して現在のブランチにマージします。 - Q5
ローカルの変更をリモートリポジトリに送信するコマンドはどれですか?
ANSWERgit pushクリックして解説を表示EXPLANATIONgit pushでローカルのコミットをリモートリポジトリに送信します。 - Q6
新しいブランチをリモートにプッシュして追跡関係を設定するコマンドはどれですか?
ANSWERgit push -u origin ブランチ名クリックして解説を表示EXPLANATIONgit push -u origin ブランチ名で新しいブランチをプッシュし、上流ブランチを設定します。以降はgit pushのみで送信できます。 - Q7
リモート追跡ブランチとは何ですか?
ANSWERリモートブランチの状態を反映したローカルブランチクリックして解説を表示EXPLANATIONリモート追跡ブランチ(例:
origin/main)は、リモートリポジトリのブランチの状態をローカルに反映したブランチです。fetchで更新されます。 - Q8
リモートブランチの一覧を表示するコマンドはどれですか?
ANSWERgit branch -rクリックして解説を表示EXPLANATIONgit branch -rでリモート追跡ブランチの一覧を表示します。-aオプションでローカルとリモート両方を表示できます。 - Q9
git stashは何をしますか?ANSWER変更を一時的に退避するクリックして解説を表示EXPLANATIONgit stashは作業中の変更を一時的に退避し、作業ディレクトリをクリーンな状態に戻します。後で復元できます。 - Q10
退避した変更を復元するコマンドはどれですか?
ANSWERgit stash popクリックして解説を表示EXPLANATIONgit stash popで最新のstashを復元し、stashリストから削除します。git stash applyは削除せずに適用します。
- Q11
退避した変更の一覧を表示するコマンドはどれですか?
ANSWERgit stash listクリックして解説を表示EXPLANATIONgit stash listでstashの一覧を表示します。各stashはstash@{n}という形式で識別されます。 - Q12
特定のstashの内容を確認するコマンドはどれですか?
ANSWERgit stash show stash@{0}クリックして解説を表示EXPLANATIONgit stash show stash@{n}で特定のstashの変更概要を表示します。-pオプションで詳細な差分も見られます。 - Q13
特定のstashを削除するコマンドはどれですか?
ANSWERgit stash drop stash@{0}クリックして解説を表示EXPLANATIONgit stash drop stash@{n}で特定のstashを削除します。git stash clearですべてのstashを削除できます。 - Q14
タグを作成するコマンドはどれですか?
ANSWERgit tag タグ名クリックして解説を表示EXPLANATIONgit tag タグ名で軽量タグを作成します。-aオプションで注釈付きタグを作成できます。 - Q15
注釈付きタグを作成するコマンドはどれですか?
ANSWERgit tag -a タグ名 -m "メッセージ"クリックして解説を表示EXPLANATIONgit tag -a タグ名 -m "メッセージ"で注釈付きタグを作成します。作成者、日時、メッセージが記録されます。 - Q16
タグの一覧を表示するコマンドはどれですか?
ANSWERgit tagクリックして解説を表示EXPLANATIONgit tagまたはgit tag -lでタグの一覧を表示します。パターンでフィルタすることもできます。 - Q17
タグをリモートにプッシュするコマンドはどれですか?
ANSWERgit push origin タグ名クリックして解説を表示EXPLANATIONgit push origin タグ名で特定のタグをプッシュします。--tagsオプションですべてのタグをプッシュできます。 - Q18
git reset --soft HEAD~1は何をしますか?ANSWERコミットを取り消し、変更はステージング済みのまま残すクリックして解説を表示EXPLANATION--softオプションはHEADのみを移動し、ステージングエリアと作業ディレクトリは変更しません。直前のコミットが取り消されます。 - Q19
git reset --mixed HEAD~1は何をしますか?ANSWERコミットを取り消し、変更は未ステージングで残すクリックして解説を表示EXPLANATION--mixed(デフォルト)はHEADとステージングエリアをリセットしますが、作業ディレクトリは保持します。変更は未ステージングで残ります。 - Q20
git reset --hard HEAD~1は何をしますか?ANSWERコミットと変更をすべて削除するクリックして解説を表示EXPLANATION--hardオプションはHEAD、ステージングエリア、作業ディレクトリすべてをリセットします。変更は完全に失われます。
- Q21
git revertとgit resetの違いは何ですか?ANSWERrevertは新しいコミットを作成し、resetは履歴を書き換えるクリックして解説を表示EXPLANATIONgit revertは指定したコミットを打ち消す新しいコミットを作成します。git resetは履歴を書き換えます。revertは共有ブランチで安全です。 - Q22
特定のコミットを取り消すコマンドはどれですか?
ANSWERgit revert コミットハッシュクリックして解説を表示EXPLANATIONgit revert コミットハッシュで指定したコミットの変更を打ち消す新しいコミットを作成します。 - Q23
rebase(リベース)とは何ですか?
ANSWERブランチの基点を移動して履歴を整理することクリックして解説を表示EXPLANATIONrebaseはブランチの基点を別のコミットに移動する操作です。履歴を直線的に整理できますが、履歴を書き換えます。
- Q24
現在のブランチをmainブランチの最新にリベースするコマンドはどれですか?
ANSWERgit rebase mainクリックして解説を表示EXPLANATIONgit rebase mainで現在のブランチのコミットをmainブランチの先端の後に再適用します。 - Q25
rebaseとmergeの主な違いは何ですか?
ANSWERmergeは履歴を保持し、rebaseは履歴を直線的にするクリックして解説を表示EXPLANATIONmergeは分岐した履歴を保持しますが、rebaseは履歴を直線的に書き換えます。rebaseは履歴がきれいになりますが、共有ブランチでは注意が必要です。
- Q26
リベース中にコンフリクトが発生した場合、解決後に続行するコマンドはどれですか?
ANSWERgit rebase --continueクリックして解説を表示EXPLANATIONコンフリクトを解決して
git addした後、git rebase --continueでリベースを続行します。 - Q27
リベースを中止するコマンドはどれですか?
ANSWERgit rebase --abortクリックして解説を表示EXPLANATIONgit rebase --abortでリベースを中止し、リベース前の状態に戻ります。 - Q28
コンフリクトマーカーの正しい形式はどれですか?
ANSWER<<<<<<< HEAD ======= >>>>>>> branchクリックして解説を表示EXPLANATIONコンフリクトは
<<<<<<< HEAD、=======、>>>>>>> ブランチ名で囲まれます。上部がHEAD、下部がマージ元の変更です。 - Q29
コンフリクトを解決するための基本的な手順はどれですか?
ANSWERファイルを編集し、マーカーを削除してaddしてコミットクリックして解説を表示EXPLANATIONコンフリクトマーカーを含むファイルを編集し、マーカーを削除して正しい内容にした後、
git addしてコミットします。 - Q30
マージ時に相手側の変更をすべて採用するオプションはどれですか?
ANSWERgit merge -X theirsクリックして解説を表示EXPLANATIONgit merge -X theirsで、コンフリクト時に相手側(マージ元)の変更を優先して採用します。
- Q31
マージ時に自分側の変更をすべて採用するオプションはどれですか?
ANSWERgit merge -X oursクリックして解説を表示EXPLANATIONgit merge -X oursで、コンフリクト時に自分側(現在のブランチ)の変更を優先して採用します。 - Q32
git pull --rebaseは何をしますか?ANSWERfetch後にrebaseでローカルの変更を再適用するクリックして解説を表示EXPLANATIONgit pull --rebaseはfetch後にmergeではなくrebaseを行います。履歴が直線的になり、不要なマージコミットを避けられます。 - Q33
リモートリポジトリを削除するコマンドはどれですか?
ANSWERgit remote remove 名前クリックして解説を表示EXPLANATIONgit remote remove 名前またはgit remote rm 名前でリモートの登録を削除します。リモートサーバー自体は削除されません。 - Q34
リモートの名前を変更するコマンドはどれですか?
ANSWERgit remote rename 旧名 新名クリックして解説を表示EXPLANATIONgit remote rename 旧名 新名でリモートの名前を変更できます。 - Q35
リモートブランチを削除するコマンドはどれですか?
ANSWERgit push origin --delete ブランチ名クリックして解説を表示EXPLANATIONgit push origin --delete ブランチ名でリモートのブランチを削除します。git push origin :ブランチ名でも同様です。 - Q36
削除されたリモートブランチの追跡ブランチをクリーンアップするコマンドはどれですか?
ANSWERgit fetch --pruneクリックして解説を表示EXPLANATIONgit fetch --pruneまたはgit remote prune originで、リモートで削除されたブランチの追跡ブランチを削除します。 - Q37
上流ブランチを設定するコマンドはどれですか?
ANSWERgit branch -u origin/ブランチ名クリックして解説を表示EXPLANATIONgit branch -u origin/ブランチ名またはgit branch --set-upstream-to=origin/ブランチ名で上流ブランチを設定します。 - Q38
上流ブランチとの差分を確認するコマンドはどれですか?
ANSWERgit log @{u}..HEADクリックして解説を表示EXPLANATIONgit log @{u}..HEADまたはgit log @{upstream}..HEADでローカルにあって上流にないコミットを表示できます。 - Q39
stashに名前を付けて保存するコマンドはどれですか?
ANSWERgit stash push -m "メッセージ"クリックして解説を表示EXPLANATIONgit stash push -m "メッセージ"またはgit stash save "メッセージ"で名前付きのstashを作成できます。 - Q40
追跡されていないファイルも含めてstashするオプションはどれですか?
ANSWERgit stash -uクリックして解説を表示EXPLANATIONgit stash -uまたはgit stash --include-untrackedで追跡されていないファイルもstashに含めます。
- Q41
stashを適用するが削除しないコマンドはどれですか?
ANSWERgit stash applyクリックして解説を表示EXPLANATIONgit stash applyはstashを適用しますが、リストからは削除しません。popは適用後に削除します。 - Q42
すべてのstashを削除するコマンドはどれですか?
ANSWERgit stash clearクリックして解説を表示EXPLANATIONgit stash clearですべてのstashを削除します。この操作は取り消せません。 - Q43
stashからブランチを作成するコマンドはどれですか?
ANSWERgit stash branch ブランチ名クリックして解説を表示EXPLANATIONgit stash branch ブランチ名でstash作成時点から新しいブランチを作成し、stashを適用します。 - Q44
タグを削除するコマンドはどれですか?
ANSWERgit tag -d タグ名クリックして解説を表示EXPLANATIONgit tag -d タグ名でローカルのタグを削除します。リモートのタグは別途削除が必要です。 - Q45
リモートのタグを削除するコマンドはどれですか?
ANSWERgit push origin --delete タグ名クリックして解説を表示EXPLANATIONgit push origin --delete タグ名またはgit push origin :refs/tags/タグ名でリモートのタグを削除します。 - Q46
特定のコミットにタグを付けるコマンドはどれですか?
ANSWERgit tag タグ名 コミットハッシュクリックして解説を表示EXPLANATIONgit tag タグ名 コミットハッシュで特定のコミットにタグを付けられます。省略するとHEADにタグが付きます。 - Q47
特定のタグの詳細情報を表示するコマンドはどれですか?
ANSWERgit show タグ名クリックして解説を表示EXPLANATIONgit show タグ名でタグの詳細(注釈付きタグの場合はメッセージも)とそのコミットの情報を表示します。 - Q48
git describeコマンドは何をしますか?ANSWER最も近いタグからの相対位置でコミットを表現するクリックして解説を表示EXPLANATIONgit describeは現在のコミットを最も近いタグからの相対位置で表現します(例:v1.0-3-gabcdef)。 - Q49
git fetchとgit pullの違いは何ですか?ANSWERfetchは取得のみ、pullは取得後にマージするクリックして解説を表示EXPLANATIONfetchはリモートの変更を取得するだけで、pullは取得後に自動的にマージします。fetchの方が安全に確認できます。 - Q50
強制プッシュを行うコマンドはどれですか?
ANSWERgit push --forceクリックして解説を表示EXPLANATIONgit push --forceまたはgit push -fでリモートの履歴を強制的に上書きします。共有ブランチでは危険です。
- Q51
より安全な強制プッシュのオプションはどれですか?
ANSWERgit push --force-with-leaseクリックして解説を表示EXPLANATIONgit push --force-with-leaseは、リモートが予期した状態の場合のみ強制プッシュします。他の人の変更を誤って上書きするのを防げます。 - Q52
リモートリポジトリのURLを変更するコマンドはどれですか?
ANSWERgit remote set-url origin 新URLクリックして解説を表示EXPLANATIONgit remote set-url origin 新URLでリモートのURLを変更できます。HTTPSからSSHへの切り替えなどに使用します。 - Q53
特定のファイルのみをstashするコマンドはどれですか?
ANSWERgit stash push ファイル名クリックして解説を表示EXPLANATIONgit stash push ファイル名で特定のファイルのみをstashできます。複数ファイルも指定可能です。 - Q54
git resetのデフォルトモードはどれですか?ANSWER--mixedクリックして解説を表示EXPLANATIONgit resetのデフォルトモードは--mixedです。HEADとインデックスをリセットしますが、作業ディレクトリは保持します。 - Q55
git revertでコミットせずに変更だけ適用するオプションはどれですか?ANSWERgit revert --no-commitクリックして解説を表示EXPLANATIONgit revert --no-commitまたは-nで、revertの変更をステージングまでに留め、自動コミットを行いません。 - Q56
複数のコミットを一度にrevertするコマンドはどれですか?
ANSWERgit revert コミット1..コミット2クリックして解説を表示EXPLANATIONgit revert コミット1..コミット2で範囲を指定して複数のコミットをrevertできます。各コミットに対してrevertコミットが作成されます。 - Q57
ブランチが特定のコミットを含むか確認するコマンドはどれですか?
ANSWERgit branch --contains コミットハッシュクリックして解説を表示EXPLANATIONgit branch --contains コミットハッシュで指定したコミットを含むブランチの一覧を表示します。 - Q58
マージ済みのブランチ一覧を表示するコマンドはどれですか?
ANSWERgit branch --mergedクリックして解説を表示EXPLANATIONgit branch --mergedで現在のブランチにマージ済みのブランチを表示します。これらは削除しても安全です。 - Q59
未マージのブランチ一覧を表示するコマンドはどれですか?
ANSWERgit branch --no-mergedクリックして解説を表示EXPLANATIONgit branch --no-mergedで現在のブランチにまだマージされていないブランチを表示します。 - Q60
特定のファイルの特定バージョンを見るコマンドはどれですか?
ANSWERgit show コミット:ファイルパスクリックして解説を表示EXPLANATIONgit show コミット:ファイルパスで特定のコミット時点のファイル内容を表示できます。
- Q61
特定のファイルを過去のバージョンに戻すコマンドはどれですか?
ANSWERgit checkout コミット -- ファイルクリックして解説を表示EXPLANATIONgit checkout コミット -- ファイルまたはgit restore --source=コミット ファイルで特定のファイルを過去の状態に戻せます。 - Q62
コミットの変更内容をワード単位で表示するオプションはどれですか?
ANSWERgit diff --word-diffクリックして解説を表示EXPLANATIONgit diff --word-diffで行単位ではなくワード単位で差分を表示します。文章の変更を見るのに便利です。 - Q63
空白の変更を無視してdiffを表示するオプションはどれですか?
ANSWERgit diff -wクリックして解説を表示EXPLANATIONgit diff -wまたは--ignore-all-spaceで空白の変更を無視して差分を表示します。 - Q64
マージツールを起動するコマンドはどれですか?
ANSWERgit mergetoolクリックして解説を表示EXPLANATIONgit mergetoolでGUIのマージツールを起動してコンフリクトを解決できます。設定されたツールが使用されます。 - Q65
差分ツールを起動するコマンドはどれですか?
ANSWERgit difftoolクリックして解説を表示EXPLANATIONgit difftoolでGUIの差分ビューアを起動できます。vimdiffやmeldなどが使用できます。 - Q66
部分的にファイルをステージングするコマンドはどれですか?
ANSWERgit add -pクリックして解説を表示EXPLANATIONgit add -pまたは--patchで、ファイルの変更を対話的に選択してステージングできます。 - Q67
git add -pで表示される「hunk」とは何ですか?ANSWER連続した変更の塊クリックして解説を表示EXPLANATIONhunkは連続した変更の塊(チャンク)を指します。各hunkごとにステージングするかどうかを選択できます。
- Q68
クローン時にブランチを指定するオプションはどれですか?
ANSWERgit clone -b ブランチ名 URLクリックして解説を表示EXPLANATIONgit clone -b ブランチ名 URLで特定のブランチをチェックアウトした状態でクローンします。 - Q69
シャロー(浅い)クローンを作成するオプションはどれですか?
ANSWERgit clone --depth 1クリックして解説を表示EXPLANATIONgit clone --depth 1で最新のコミットのみを含むシャロークローンを作成します。履歴が不要な場合に高速です。 - Q70
すべてのタグをリモートからフェッチするコマンドはどれですか?
ANSWERgit fetch --tagsクリックして解説を表示EXPLANATIONgit fetch --tagsですべてのタグを取得します。通常のfetchでは参照されていないタグは取得されません。
- Q71
すべてのリモートからフェッチするコマンドはどれですか?
ANSWERgit fetch --allクリックして解説を表示EXPLANATIONgit fetch --allで登録されているすべてのリモートから変更を取得します。 - Q72
リモート追跡ブランチをローカルブランチとしてチェックアウトするコマンドはどれですか?
ANSWERgit checkout -b ローカル名 origin/リモート名クリックして解説を表示EXPLANATIONgit checkout -b ローカル名 origin/リモート名または単にgit checkout リモート名(自動追跡)でリモートブランチをベースにローカルブランチを作成します。 - Q73
リモートの情報を詳細に表示するコマンドはどれですか?
ANSWERgit remote show originクリックして解説を表示EXPLANATIONgit remote show originでリモートのURL、追跡ブランチ、プッシュ/プル設定などの詳細情報を表示します。 - Q74
変更をコミットする前に、変更内容を確認するベストプラクティスはどれですか?
ANSWERgit diff --stagedで変更内容を確認するクリックして解説を表示EXPLANATIONgit diff --stagedでステージングされた変更を確認し、意図した変更のみがコミットされることを確認します。 - Q75
マージ戦略を指定するオプションはどれですか?
ANSWERgit merge -s 戦略名クリックして解説を表示EXPLANATIONgit merge -s 戦略名でマージ戦略(recursive、ours、octopusなど)を指定できます。 - Q76
3-wayマージとは何ですか?
ANSWER2つのブランチと共通の祖先を使ってマージすることクリックして解説を表示EXPLANATION3-wayマージは、2つのブランチとそれらの共通の祖先の3つを使用して変更を統合する方法です。Gitのデフォルトのマージ方法です。
- Q77
プルリクエスト(PR)とは何ですか?
ANSWERブランチの変更をレビューしてマージを依頼する仕組みクリックして解説を表示EXPLANATIONプルリクエストはGitHub等のホスティングサービスの機能で、ブランチの変更をレビューしてマージを依頼する仕組みです。
- Q78
フォーク(Fork)とは何ですか?
ANSWER他人のリポジトリを自分のアカウントにコピーすることクリックして解説を表示EXPLANATIONフォークは他人のリポジトリを自分のアカウントにコピーすることです。元のリポジトリへの書き込み権限がなくても貢献できます。
- Q79
上流リポジトリ(upstream)とは何ですか?
ANSWERフォーク元のオリジナルリポジトリクリックして解説を表示EXPLANATIONupstreamは通常、フォーク元のオリジナルリポジトリを指します。originは自分のフォーク、upstreamは元のリポジトリを指すことが多いです。
- Q80
コミットメッセージのベストプラクティスとして正しいものはどれですか?
ANSWER最初の行に要約を書き、詳細は空行後に記述クリックして解説を表示EXPLANATION良いコミットメッセージは、最初の行に50文字以内の要約を書き、必要に応じて空行の後に詳細を記述します。
- Q81
Squashマージとは何ですか?
ANSWER複数のコミットを1つにまとめてマージすることクリックして解説を表示EXPLANATIONSquashマージは、ブランチの複数のコミットを1つにまとめてマージすることです。履歴がシンプルになります。
- Q82
Squashマージを行うコマンドはどれですか?
ANSWERgit merge --squash ブランチ名クリックして解説を表示EXPLANATIONgit merge --squash ブランチ名で変更をステージングし、手動で1つのコミットを作成します。 - Q83
ブランチの最後のコミット日時で並べ替えて表示するコマンドはどれですか?
ANSWERgit branch --sort=-committerdateクリックして解説を表示EXPLANATIONgit branch --sort=-committerdateで最終コミット日時の新しい順にブランチを表示します。 - Q84
特定のパターンにマッチするタグを表示するコマンドはどれですか?
ANSWERgit tag -l "パターン"クリックして解説を表示EXPLANATIONgit tag -l "パターン"でパターンにマッチするタグのみを表示します。例:git tag -l "v1.*" - Q85
ワークツリーを追加するコマンドはどれですか?
ANSWERgit worktree add パス ブランチクリックして解説を表示EXPLANATIONgit worktree add パス ブランチで同じリポジトリの別のブランチを別のディレクトリで作業できます。 - Q86
GPG署名付きコミットを作成するオプションはどれですか?
ANSWERgit commit -Sクリックして解説を表示EXPLANATIONgit commit -SでGPG署名付きのコミットを作成できます。事前にGPGキーの設定が必要です。 - Q87
コミットの署名を検証するコマンドはどれですか?
ANSWERgit log --show-signatureクリックして解説を表示EXPLANATIONgit log --show-signatureで各コミットの署名情報と検証結果を表示できます。