中級
STAGE 1
110問目 • 10
  • Q1

    リモートリポジトリを追加するコマンドはどれですか?

    ANSWER
    git remote add 名前 URL
    クリックして解説を表示
    EXPLANATION

    git remote add 名前 URLでリモートリポジトリを追加します。慣例として最初のリモートはoriginと名付けます。

  • Q2

    登録されているリモートリポジトリの一覧を表示するコマンドはどれですか?

    ANSWER
    git remote
    クリックして解説を表示
    EXPLANATION

    git remoteまたはgit remote -vでリモートリポジトリの一覧を表示します。-vオプションでURLも表示されます。

  • Q3

    リモートリポジトリの変更をローカルに取得するコマンドはどれですか?

    ANSWER
    git fetch
    クリックして解説を表示
    EXPLANATION

    git fetchでリモートの変更をローカルに取得します。作業ディレクトリには反映されず、リモート追跡ブランチが更新されます。

  • Q4

    git pullは何をしますか?

    ANSWER
    リモートの変更を取得してマージする
    クリックして解説を表示
    EXPLANATION

    git pullgit fetchgit mergeを組み合わせたコマンドで、リモートの変更を取得して現在のブランチにマージします。

  • Q5

    ローカルの変更をリモートリポジトリに送信するコマンドはどれですか?

    ANSWER
    git push
    クリックして解説を表示
    EXPLANATION

    git pushでローカルのコミットをリモートリポジトリに送信します。

  • Q6

    新しいブランチをリモートにプッシュして追跡関係を設定するコマンドはどれですか?

    ANSWER
    git push -u origin ブランチ名
    クリックして解説を表示
    EXPLANATION

    git push -u origin ブランチ名で新しいブランチをプッシュし、上流ブランチを設定します。以降はgit pushのみで送信できます。

  • Q7

    リモート追跡ブランチとは何ですか?

    ANSWER
    リモートブランチの状態を反映したローカルブランチ
    クリックして解説を表示
    EXPLANATION

    リモート追跡ブランチ(例:origin/main)は、リモートリポジトリのブランチの状態をローカルに反映したブランチです。fetchで更新されます。

  • Q8

    リモートブランチの一覧を表示するコマンドはどれですか?

    ANSWER
    git branch -r
    クリックして解説を表示
    EXPLANATION

    git branch -rでリモート追跡ブランチの一覧を表示します。-aオプションでローカルとリモート両方を表示できます。

  • Q9

    git stashは何をしますか?

    ANSWER
    変更を一時的に退避する
    クリックして解説を表示
    EXPLANATION

    git stashは作業中の変更を一時的に退避し、作業ディレクトリをクリーンな状態に戻します。後で復元できます。

  • Q10

    退避した変更を復元するコマンドはどれですか?

    ANSWER
    git stash pop
    クリックして解説を表示
    EXPLANATION

    git stash popで最新のstashを復元し、stashリストから削除します。git stash applyは削除せずに適用します。

STAGE 2
1120問目 • 10
  • Q11

    退避した変更の一覧を表示するコマンドはどれですか?

    ANSWER
    git stash list
    クリックして解説を表示
    EXPLANATION

    git stash listでstashの一覧を表示します。各stashはstash@{n}という形式で識別されます。

  • Q12

    特定のstashの内容を確認するコマンドはどれですか?

    ANSWER
    git stash show stash@{0}
    クリックして解説を表示
    EXPLANATION

    git stash show stash@{n}で特定のstashの変更概要を表示します。-pオプションで詳細な差分も見られます。

  • Q13

    特定のstashを削除するコマンドはどれですか?

    ANSWER
    git stash drop stash@{0}
    クリックして解説を表示
    EXPLANATION

    git stash drop stash@{n}で特定のstashを削除します。git stash clearですべてのstashを削除できます。

  • Q14

    タグを作成するコマンドはどれですか?

    ANSWER
    git tag タグ名
    クリックして解説を表示
    EXPLANATION

    git tag タグ名で軽量タグを作成します。-aオプションで注釈付きタグを作成できます。

  • Q15

    注釈付きタグを作成するコマンドはどれですか?

    ANSWER
    git tag -a タグ名 -m "メッセージ"
    クリックして解説を表示
    EXPLANATION

    git tag -a タグ名 -m "メッセージ"で注釈付きタグを作成します。作成者、日時、メッセージが記録されます。

  • Q16

    タグの一覧を表示するコマンドはどれですか?

    ANSWER
    git tag
    クリックして解説を表示
    EXPLANATION

    git tagまたはgit tag -lでタグの一覧を表示します。パターンでフィルタすることもできます。

  • Q17

    タグをリモートにプッシュするコマンドはどれですか?

    ANSWER
    git push origin タグ名
    クリックして解説を表示
    EXPLANATION

    git 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、ステージングエリア、作業ディレクトリすべてをリセットします。変更は完全に失われます。

STAGE 3
2130問目 • 10
  • Q21

    git revertgit resetの違いは何ですか?

    ANSWER
    revertは新しいコミットを作成し、resetは履歴を書き換える
    クリックして解説を表示
    EXPLANATION

    git revertは指定したコミットを打ち消す新しいコミットを作成します。git resetは履歴を書き換えます。revertは共有ブランチで安全です。

  • Q22

    特定のコミットを取り消すコマンドはどれですか?

    ANSWER
    git revert コミットハッシュ
    クリックして解説を表示
    EXPLANATION

    git revert コミットハッシュで指定したコミットの変更を打ち消す新しいコミットを作成します。

  • Q23

    rebase(リベース)とは何ですか?

    ANSWER
    ブランチの基点を移動して履歴を整理すること
    クリックして解説を表示
    EXPLANATION

    rebaseはブランチの基点を別のコミットに移動する操作です。履歴を直線的に整理できますが、履歴を書き換えます。

  • Q24

    現在のブランチをmainブランチの最新にリベースするコマンドはどれですか?

    ANSWER
    git rebase main
    クリックして解説を表示
    EXPLANATION

    git rebase mainで現在のブランチのコミットをmainブランチの先端の後に再適用します。

  • Q25

    rebaseとmergeの主な違いは何ですか?

    ANSWER
    mergeは履歴を保持し、rebaseは履歴を直線的にする
    クリックして解説を表示
    EXPLANATION

    mergeは分岐した履歴を保持しますが、rebaseは履歴を直線的に書き換えます。rebaseは履歴がきれいになりますが、共有ブランチでは注意が必要です。

  • Q26

    リベース中にコンフリクトが発生した場合、解決後に続行するコマンドはどれですか?

    ANSWER
    git rebase --continue
    クリックして解説を表示
    EXPLANATION

    コンフリクトを解決してgit addした後、git rebase --continueでリベースを続行します。

  • Q27

    リベースを中止するコマンドはどれですか?

    ANSWER
    git rebase --abort
    クリックして解説を表示
    EXPLANATION

    git rebase --abortでリベースを中止し、リベース前の状態に戻ります。

  • Q28

    コンフリクトマーカーの正しい形式はどれですか?

    ANSWER
    <<<<<<< HEAD ======= >>>>>>> branch
    クリックして解説を表示
    EXPLANATION

    コンフリクトは<<<<<<< HEAD=======>>>>>>> ブランチ名で囲まれます。上部がHEAD、下部がマージ元の変更です。

  • Q29

    コンフリクトを解決するための基本的な手順はどれですか?

    ANSWER
    ファイルを編集し、マーカーを削除してaddしてコミット
    クリックして解説を表示
    EXPLANATION

    コンフリクトマーカーを含むファイルを編集し、マーカーを削除して正しい内容にした後、git addしてコミットします。

  • Q30

    マージ時に相手側の変更をすべて採用するオプションはどれですか?

    ANSWER
    git merge -X theirs
    クリックして解説を表示
    EXPLANATION

    git merge -X theirsで、コンフリクト時に相手側(マージ元)の変更を優先して採用します。

STAGE 4
3140問目 • 10
  • Q31

    マージ時に自分側の変更をすべて採用するオプションはどれですか?

    ANSWER
    git merge -X ours
    クリックして解説を表示
    EXPLANATION

    git merge -X oursで、コンフリクト時に自分側(現在のブランチ)の変更を優先して採用します。

  • Q32

    git pull --rebaseは何をしますか?

    ANSWER
    fetch後にrebaseでローカルの変更を再適用する
    クリックして解説を表示
    EXPLANATION

    git pull --rebaseはfetch後にmergeではなくrebaseを行います。履歴が直線的になり、不要なマージコミットを避けられます。

  • Q33

    リモートリポジトリを削除するコマンドはどれですか?

    ANSWER
    git remote remove 名前
    クリックして解説を表示
    EXPLANATION

    git remote remove 名前またはgit remote rm 名前でリモートの登録を削除します。リモートサーバー自体は削除されません。

  • Q34

    リモートの名前を変更するコマンドはどれですか?

    ANSWER
    git remote rename 旧名 新名
    クリックして解説を表示
    EXPLANATION

    git remote rename 旧名 新名でリモートの名前を変更できます。

  • Q35

    リモートブランチを削除するコマンドはどれですか?

    ANSWER
    git push origin --delete ブランチ名
    クリックして解説を表示
    EXPLANATION

    git push origin --delete ブランチ名でリモートのブランチを削除します。git push origin :ブランチ名でも同様です。

  • Q36

    削除されたリモートブランチの追跡ブランチをクリーンアップするコマンドはどれですか?

    ANSWER
    git fetch --prune
    クリックして解説を表示
    EXPLANATION

    git fetch --pruneまたはgit remote prune originで、リモートで削除されたブランチの追跡ブランチを削除します。

  • Q37

    上流ブランチを設定するコマンドはどれですか?

    ANSWER
    git branch -u origin/ブランチ名
    クリックして解説を表示
    EXPLANATION

    git branch -u origin/ブランチ名またはgit branch --set-upstream-to=origin/ブランチ名で上流ブランチを設定します。

  • Q38

    上流ブランチとの差分を確認するコマンドはどれですか?

    ANSWER
    git log @{u}..HEAD
    クリックして解説を表示
    EXPLANATION

    git log @{u}..HEADまたはgit log @{upstream}..HEADでローカルにあって上流にないコミットを表示できます。

  • Q39

    stashに名前を付けて保存するコマンドはどれですか?

    ANSWER
    git stash push -m "メッセージ"
    クリックして解説を表示
    EXPLANATION

    git stash push -m "メッセージ"またはgit stash save "メッセージ"で名前付きのstashを作成できます。

  • Q40

    追跡されていないファイルも含めてstashするオプションはどれですか?

    ANSWER
    git stash -u
    クリックして解説を表示
    EXPLANATION

    git stash -uまたはgit stash --include-untrackedで追跡されていないファイルもstashに含めます。

STAGE 5
4150問目 • 10
  • Q41

    stashを適用するが削除しないコマンドはどれですか?

    ANSWER
    git stash apply
    クリックして解説を表示
    EXPLANATION

    git stash applyはstashを適用しますが、リストからは削除しません。popは適用後に削除します。

  • Q42

    すべてのstashを削除するコマンドはどれですか?

    ANSWER
    git stash clear
    クリックして解説を表示
    EXPLANATION

    git stash clearですべてのstashを削除します。この操作は取り消せません。

  • Q43

    stashからブランチを作成するコマンドはどれですか?

    ANSWER
    git stash branch ブランチ名
    クリックして解説を表示
    EXPLANATION

    git stash branch ブランチ名でstash作成時点から新しいブランチを作成し、stashを適用します。

  • Q44

    タグを削除するコマンドはどれですか?

    ANSWER
    git tag -d タグ名
    クリックして解説を表示
    EXPLANATION

    git tag -d タグ名でローカルのタグを削除します。リモートのタグは別途削除が必要です。

  • Q45

    リモートのタグを削除するコマンドはどれですか?

    ANSWER
    git push origin --delete タグ名
    クリックして解説を表示
    EXPLANATION

    git push origin --delete タグ名またはgit push origin :refs/tags/タグ名でリモートのタグを削除します。

  • Q46

    特定のコミットにタグを付けるコマンドはどれですか?

    ANSWER
    git tag タグ名 コミットハッシュ
    クリックして解説を表示
    EXPLANATION

    git tag タグ名 コミットハッシュで特定のコミットにタグを付けられます。省略するとHEADにタグが付きます。

  • Q47

    特定のタグの詳細情報を表示するコマンドはどれですか?

    ANSWER
    git show タグ名
    クリックして解説を表示
    EXPLANATION

    git show タグ名でタグの詳細(注釈付きタグの場合はメッセージも)とそのコミットの情報を表示します。

  • Q48

    git describeコマンドは何をしますか?

    ANSWER
    最も近いタグからの相対位置でコミットを表現する
    クリックして解説を表示
    EXPLANATION

    git describeは現在のコミットを最も近いタグからの相対位置で表現します(例:v1.0-3-gabcdef)。

  • Q49

    git fetchgit pullの違いは何ですか?

    ANSWER
    fetchは取得のみ、pullは取得後にマージする
    クリックして解説を表示
    EXPLANATION

    fetchはリモートの変更を取得するだけで、pullは取得後に自動的にマージします。fetchの方が安全に確認できます。

  • Q50

    強制プッシュを行うコマンドはどれですか?

    ANSWER
    git push --force
    クリックして解説を表示
    EXPLANATION

    git push --forceまたはgit push -fでリモートの履歴を強制的に上書きします。共有ブランチでは危険です。

STAGE 6
5160問目 • 10
  • Q51

    より安全な強制プッシュのオプションはどれですか?

    ANSWER
    git push --force-with-lease
    クリックして解説を表示
    EXPLANATION

    git push --force-with-leaseは、リモートが予期した状態の場合のみ強制プッシュします。他の人の変更を誤って上書きするのを防げます。

  • Q52

    リモートリポジトリのURLを変更するコマンドはどれですか?

    ANSWER
    git remote set-url origin 新URL
    クリックして解説を表示
    EXPLANATION

    git remote set-url origin 新URLでリモートのURLを変更できます。HTTPSからSSHへの切り替えなどに使用します。

  • Q53

    特定のファイルのみをstashするコマンドはどれですか?

    ANSWER
    git stash push ファイル名
    クリックして解説を表示
    EXPLANATION

    git stash push ファイル名で特定のファイルのみをstashできます。複数ファイルも指定可能です。

  • Q54

    git resetのデフォルトモードはどれですか?

    ANSWER
    --mixed
    クリックして解説を表示
    EXPLANATION

    git resetのデフォルトモードは--mixedです。HEADとインデックスをリセットしますが、作業ディレクトリは保持します。

  • Q55

    git revertでコミットせずに変更だけ適用するオプションはどれですか?

    ANSWER
    git revert --no-commit
    クリックして解説を表示
    EXPLANATION

    git revert --no-commitまたは-nで、revertの変更をステージングまでに留め、自動コミットを行いません。

  • Q56

    複数のコミットを一度にrevertするコマンドはどれですか?

    ANSWER
    git revert コミット1..コミット2
    クリックして解説を表示
    EXPLANATION

    git revert コミット1..コミット2で範囲を指定して複数のコミットをrevertできます。各コミットに対してrevertコミットが作成されます。

  • Q57

    ブランチが特定のコミットを含むか確認するコマンドはどれですか?

    ANSWER
    git branch --contains コミットハッシュ
    クリックして解説を表示
    EXPLANATION

    git branch --contains コミットハッシュで指定したコミットを含むブランチの一覧を表示します。

  • Q58

    マージ済みのブランチ一覧を表示するコマンドはどれですか?

    ANSWER
    git branch --merged
    クリックして解説を表示
    EXPLANATION

    git branch --mergedで現在のブランチにマージ済みのブランチを表示します。これらは削除しても安全です。

  • Q59

    未マージのブランチ一覧を表示するコマンドはどれですか?

    ANSWER
    git branch --no-merged
    クリックして解説を表示
    EXPLANATION

    git branch --no-mergedで現在のブランチにまだマージされていないブランチを表示します。

  • Q60

    特定のファイルの特定バージョンを見るコマンドはどれですか?

    ANSWER
    git show コミット:ファイルパス
    クリックして解説を表示
    EXPLANATION

    git show コミット:ファイルパスで特定のコミット時点のファイル内容を表示できます。

STAGE 7
6170問目 • 10
  • Q61

    特定のファイルを過去のバージョンに戻すコマンドはどれですか?

    ANSWER
    git checkout コミット -- ファイル
    クリックして解説を表示
    EXPLANATION

    git checkout コミット -- ファイルまたはgit restore --source=コミット ファイルで特定のファイルを過去の状態に戻せます。

  • Q62

    コミットの変更内容をワード単位で表示するオプションはどれですか?

    ANSWER
    git diff --word-diff
    クリックして解説を表示
    EXPLANATION

    git diff --word-diffで行単位ではなくワード単位で差分を表示します。文章の変更を見るのに便利です。

  • Q63

    空白の変更を無視してdiffを表示するオプションはどれですか?

    ANSWER
    git diff -w
    クリックして解説を表示
    EXPLANATION

    git diff -wまたは--ignore-all-spaceで空白の変更を無視して差分を表示します。

  • Q64

    マージツールを起動するコマンドはどれですか?

    ANSWER
    git mergetool
    クリックして解説を表示
    EXPLANATION

    git mergetoolでGUIのマージツールを起動してコンフリクトを解決できます。設定されたツールが使用されます。

  • Q65

    差分ツールを起動するコマンドはどれですか?

    ANSWER
    git difftool
    クリックして解説を表示
    EXPLANATION

    git difftoolでGUIの差分ビューアを起動できます。vimdiffやmeldなどが使用できます。

  • Q66

    部分的にファイルをステージングするコマンドはどれですか?

    ANSWER
    git add -p
    クリックして解説を表示
    EXPLANATION

    git add -pまたは--patchで、ファイルの変更を対話的に選択してステージングできます。

  • Q67

    git add -pで表示される「hunk」とは何ですか?

    ANSWER
    連続した変更の塊
    クリックして解説を表示
    EXPLANATION

    hunkは連続した変更の塊(チャンク)を指します。各hunkごとにステージングするかどうかを選択できます。

  • Q68

    クローン時にブランチを指定するオプションはどれですか?

    ANSWER
    git clone -b ブランチ名 URL
    クリックして解説を表示
    EXPLANATION

    git clone -b ブランチ名 URLで特定のブランチをチェックアウトした状態でクローンします。

  • Q69

    シャロー(浅い)クローンを作成するオプションはどれですか?

    ANSWER
    git clone --depth 1
    クリックして解説を表示
    EXPLANATION

    git clone --depth 1で最新のコミットのみを含むシャロークローンを作成します。履歴が不要な場合に高速です。

  • Q70

    すべてのタグをリモートからフェッチするコマンドはどれですか?

    ANSWER
    git fetch --tags
    クリックして解説を表示
    EXPLANATION

    git fetch --tagsですべてのタグを取得します。通常のfetchでは参照されていないタグは取得されません。

STAGE 8
7180問目 • 10
  • Q71

    すべてのリモートからフェッチするコマンドはどれですか?

    ANSWER
    git fetch --all
    クリックして解説を表示
    EXPLANATION

    git fetch --allで登録されているすべてのリモートから変更を取得します。

  • Q72

    リモート追跡ブランチをローカルブランチとしてチェックアウトするコマンドはどれですか?

    ANSWER
    git checkout -b ローカル名 origin/リモート名
    クリックして解説を表示
    EXPLANATION

    git checkout -b ローカル名 origin/リモート名または単にgit checkout リモート名(自動追跡)でリモートブランチをベースにローカルブランチを作成します。

  • Q73

    リモートの情報を詳細に表示するコマンドはどれですか?

    ANSWER
    git remote show origin
    クリックして解説を表示
    EXPLANATION

    git remote show originでリモートのURL、追跡ブランチ、プッシュ/プル設定などの詳細情報を表示します。

  • Q74

    変更をコミットする前に、変更内容を確認するベストプラクティスはどれですか?

    ANSWER
    git diff --stagedで変更内容を確認する
    クリックして解説を表示
    EXPLANATION

    git diff --stagedでステージングされた変更を確認し、意図した変更のみがコミットされることを確認します。

  • Q75

    マージ戦略を指定するオプションはどれですか?

    ANSWER
    git merge -s 戦略名
    クリックして解説を表示
    EXPLANATION

    git merge -s 戦略名でマージ戦略(recursive、ours、octopusなど)を指定できます。

  • Q76

    3-wayマージとは何ですか?

    ANSWER
    2つのブランチと共通の祖先を使ってマージすること
    クリックして解説を表示
    EXPLANATION

    3-wayマージは、2つのブランチとそれらの共通の祖先の3つを使用して変更を統合する方法です。Gitのデフォルトのマージ方法です。

  • Q77

    プルリクエスト(PR)とは何ですか?

    ANSWER
    ブランチの変更をレビューしてマージを依頼する仕組み
    クリックして解説を表示
    EXPLANATION

    プルリクエストはGitHub等のホスティングサービスの機能で、ブランチの変更をレビューしてマージを依頼する仕組みです。

  • Q78

    フォーク(Fork)とは何ですか?

    ANSWER
    他人のリポジトリを自分のアカウントにコピーすること
    クリックして解説を表示
    EXPLANATION

    フォークは他人のリポジトリを自分のアカウントにコピーすることです。元のリポジトリへの書き込み権限がなくても貢献できます。

  • Q79

    上流リポジトリ(upstream)とは何ですか?

    ANSWER
    フォーク元のオリジナルリポジトリ
    クリックして解説を表示
    EXPLANATION

    upstreamは通常、フォーク元のオリジナルリポジトリを指します。originは自分のフォーク、upstreamは元のリポジトリを指すことが多いです。

  • Q80

    コミットメッセージのベストプラクティスとして正しいものはどれですか?

    ANSWER
    最初の行に要約を書き、詳細は空行後に記述
    クリックして解説を表示
    EXPLANATION

    良いコミットメッセージは、最初の行に50文字以内の要約を書き、必要に応じて空行の後に詳細を記述します。

STAGE 9
8187問目 • 7
  • Q81

    Squashマージとは何ですか?

    ANSWER
    複数のコミットを1つにまとめてマージすること
    クリックして解説を表示
    EXPLANATION

    Squashマージは、ブランチの複数のコミットを1つにまとめてマージすることです。履歴がシンプルになります。

  • Q82

    Squashマージを行うコマンドはどれですか?

    ANSWER
    git merge --squash ブランチ名
    クリックして解説を表示
    EXPLANATION

    git merge --squash ブランチ名で変更をステージングし、手動で1つのコミットを作成します。

  • Q83

    ブランチの最後のコミット日時で並べ替えて表示するコマンドはどれですか?

    ANSWER
    git branch --sort=-committerdate
    クリックして解説を表示
    EXPLANATION

    git branch --sort=-committerdateで最終コミット日時の新しい順にブランチを表示します。

  • Q84

    特定のパターンにマッチするタグを表示するコマンドはどれですか?

    ANSWER
    git tag -l "パターン"
    クリックして解説を表示
    EXPLANATION

    git tag -l "パターン"でパターンにマッチするタグのみを表示します。例:git tag -l "v1.*"

  • Q85

    ワークツリーを追加するコマンドはどれですか?

    ANSWER
    git worktree add パス ブランチ
    クリックして解説を表示
    EXPLANATION

    git worktree add パス ブランチで同じリポジトリの別のブランチを別のディレクトリで作業できます。

  • Q86

    GPG署名付きコミットを作成するオプションはどれですか?

    ANSWER
    git commit -S
    クリックして解説を表示
    EXPLANATION

    git commit -SでGPG署名付きのコミットを作成できます。事前にGPGキーの設定が必要です。

  • Q87

    コミットの署名を検証するコマンドはどれですか?

    ANSWER
    git log --show-signature
    クリックして解説を表示
    EXPLANATION

    git log --show-signatureで各コミットの署名情報と検証結果を表示できます。