GIT 面接の質問と回答トップ 46 (2025)
ここでは、新人だけでなく経験豊富な候補者も夢の仕事に就くための Git 面接の質問と回答を紹介します。
1) GIT とは何ですか?
GIT は、小規模および大規模なプロジェクトを迅速かつ効率的に処理することに重点を置いた分散型バージョン管理システムおよびソース コード管理 (SCM) システムです。
2) GIT のリポジトリとは何ですか?
リポジトリには .git という名前のディレクトリが含まれており、ここに git がリポジトリのすべてのメタデータを保持します。 .git ディレクトリの内容は git にとってプライベートです。
3) コミットメッセージを書き込むために使用できるコマンドは何ですか?
コミットメッセージを書き込むコマンドは「git commit –a」です。 コマンドラインの -a は、変更されたすべての追跡ファイルの新しいコンテンツをコミットするように git に指示します。 「git add」を使用できます新しいファイルを初めてコミットする必要がある場合は、 git commit –a の前に「」を実行します。
4) GIT と SVN の違いは何ですか?
GIT と SVN の違いは次のとおりです。
a) Git は、非常に大きなファイルを処理したり、頻繁に変更されるバイナリ ファイルを処理する場合にはあまり好まれませんが、SVN は同じリポジトリに保存されている複数のプロジェクトを処理できます。
b) GIT は、複数のブランチまたはタグにわたる「コミット」をサポートしません。 Subversion では、リポジトリ レイアウト内の任意の場所にフォルダーを作成できます。
c) Git は変更できませんが、Subversion ではコミッタがタグをブランチとして扱い、タグ ルートの下に複数のリビジョンを作成できます。
5) GIT を使用する利点は何ですか?
a) データの冗長性とレプリケーション
b) 高可用性
c) リポジトリごとに XNUMX つの .git ディレクトリのみ
d) 優れたディスク使用率とネットワーク パフォーマンス
e) コラボレーションしやすい
f) あらゆる種類のプロジェクトで GIT を使用できます
6) GIT ではどのような言語が使用されますか?
GIT は高速であり、「C」言語は高級言語に関連するランタイムのオーバーヘッドを削減することでこれを可能にします。
7) GIT の「GIT PUSH」の機能は何ですか?
「GIT PUSH」は、リモート参照と関連オブジェクトを更新します。
8) なぜ GIT が Subversion よりも優れているのでしょうか?
GITはオープンソースのバージョン管理システムです。プロジェクトの「バージョン」を実行でき、コードに加えられた変更を時間経過とともに表示します。また、必要に応じて変更を元に戻したり、元に戻したりすることも可能です。複数の開発者がチェックアウトや変更のアップロードを行うことができ、それぞれの変更は特定の開発者に割り当てられます。
9) GIT の「ステージング領域」または「インデックス」とは何ですか?
コミットを完了する前に、「ステージング領域」または「インデックス」と呼ばれる中間領域でフォーマットして確認することができます。
10) GIT スタッシュとは何ですか?
GIT stash は、作業ディレクトリとインデックスの現在の状態を取得し、後で使用するためにスタックに格納し、クリーンな作業ディレクトリを返します。 したがって、何かの途中で別のジョブにジャンプする必要があり、同時に現在の編集内容を失いたくない場合は、GIT stash を使用できます。
11) GIT スタッシュ ドロップとは何ですか?
隠しアイテムの使用が完了した場合、またはリストからアイテムを削除したい場合は、 git 'stash drop' コマンドを実行します。 デフォルトでは、最後に追加された隠しアイテムが削除されます。また、引数として含める場合は、特定のアイテムを削除することもできます。
12) GIT では、ブランチがすでにマスターにマージされているかどうかをどのようにして知ることができますか?
Git ブランチ - merged は、現在のブランチにマージされたブランチをリストします。
Git ブランチ—-マージされていないブランチをリストします。
13) git clone の機能は何ですか?
git clone コマンドは、既存の Git リポジトリのコピーを作成します。 中央リポジトリのコピーを取得するために、プログラマが使用する最も一般的な方法は「クローン作成」です。
14) 「git config」の機能は何ですか?
「git config」コマンドは、Git インストールの構成オプションを設定する便利な方法です。 リポジトリの動作、ユーザー情報、設定などは、このコマンドを通じて定義できます。
15) コミットオブジェクトには何が含まれますか?
a) 特定の時点でのプロジェクトの状態を表す一連のファイル
b) 親コミットオブジェクトへの参照
c) SHAI 名。コミット オブジェクトを一意に識別する 40 文字の文字列。
16) Git でリポジトリを作成するにはどうすればよいですか?
Git でリポジトリを作成するには、プロジェクトのディレクトリが存在しない場合は作成し、コマンド「git init」を実行します。 このコマンドを実行すると、プロジェクト ディレクトリに .git ディレクトリが作成されますが、ディレクトリが空である必要はありません。
17) git の「ヘッド」とは何ですか? リポジトリにはヘッドをいくつ作成できますか?
「ヘッド」は単にコミット オブジェクトへの参照です。 すべてのリポジトリには、「マスター」と呼ばれるデフォルトのヘッドがあります。 リポジトリには任意の数のヘッドを含めることができます。
18) GIT での分岐の目的は何ですか?
GIT でのブランチの目的は、独自のブランチを作成し、それらのブランチ間をジャンプできるようにすることです。 最近の作業をそのまま維持したまま、前の作業に戻ることができます。
19) GIT における一般的な分岐パターンは何ですか?
GIT でブランチを作成する一般的な方法は、ブランチを「メイン」として維持することです。
ブランチを作成し、別のブランチを作成して新しい機能を実装します。 このパターンは、複数の開発者が XNUMX つのプロジェクトに取り組んでいる場合に特に便利です。
20) メインブランチに新しい機能を導入するにはどうすればよいですか?
メイン ブランチに新しい機能を導入するには、「git merge」または「git pull コマンド」コマンドを使用できます。
21) git の「競合」とは何ですか?
「競合」は、マージする必要があるコミットの一箇所に変更があり、現在のコミットにも同じ箇所に変更がある場合に発生します。 Git は、どの変更を優先する必要があるかを予測できません。
22) git 内の競合はどのように解決できますか?
git の競合を解決するには、ファイルを編集して競合する変更を修正し、その後「git add」を実行して解決されたファイルを追加し、修復されたマージをコミットして「git commit」を実行します。 Git はマージの途中であることを記憶しているので、コミットの親を正しく設定します。
23) ブランチを削除するにはどのようなコマンドを使用しますか?
開発ブランチがメイン ブランチにマージされたら、次の必要はありません。
開発ブランチ。 ブランチを削除するには、「git Branch –d [head]」コマンドを使用します。
24) git でマージする別のオプションは何ですか?
「リベース」は、git でのマージの代替手段です。
25) Git の「リベース」の構文は何ですか?
リベースに使用される構文は「git rebase [new-commit]
「
26) 「git リモート」と「git clone」の違いは何ですか?
「git remote add」は、特定のURLの名前を指定するエントリをGit設定ファイル内に作成するだけです。一方、「git clone」は、そのURIにある既存のGitリポジトリをコピーして新しいリポジトリを作成します。
27) GIT バージョン管理とは何ですか?
GITバージョン管理を利用すると、ファイルコレクションの履歴を追跡でき、ファイルコレクションを別のバージョンに戻す機能も備わっています。各バージョンは、特定の時点におけるファイルシステムのスナップショットをキャプチャします。ファイルコレクションとその完全な履歴は、リポジトリに保存されます。
28) LINUX に最適なグラフィカル GIT クライアントについていくつか挙げてください。
LINUX に最適な GIT クライアントには、次のようなものがあります。
a) Git Cola
b) Git-g
c) スマート git
d) くすくすと笑う
e) Git GUI
f) qGit
29) Subgitとは何ですか? Subgit を使用する理由
「Subgit」は、SVN から Git へのスムーズでストレスのない移行のためのツールです。 Subgit は、SVN から Git への全社的な移行のためのソリューションです。
a) git-svn よりもはるかに優れています
b) すでに設置されているインフラストラクチャを変更する必要はありません
c) すべての git およびすべてのサブバージョン機能の使用を許可します。
d) ストレスのない真の移行体験を提供します。
30) git の 'git diff ' の機能は何ですか?
「git diff」 コミット間の変更、コミットと作業ツリーなどを示します。
31) 「git status」は何に使用されますか?
「Git Status」には作業ディレクトリとインデックスの違いが表示されるため、Git をより包括的に理解するのに役立ちます。
32) 「git diff」と「git status」の違いは何ですか?
「git diff」は「git status」に似ています、ただし、さまざまなコミット間の違い、および作業ディレクトリとインデックス間の違いも表示されます。
33) git の「git checkout」の機能は何ですか?
A 「gitチェックアウト」 コマンドは、ブランチ全体にマージせずに、作業ツリー内のディレクトリまたは特定のファイルを別のブランチのファイルで更新するために使用されます。
34) 「git rm」の機能は何ですか?
ファイルをステージング領域とディスクから削除するには 「ギットrm」 使用されている。
35) 「git stash apply」の機能は何ですか?
退職した職場で引き続き働きたいときは、 「git stash 適用」 コマンドは、保存された変更を作業ディレクトリに戻すために使用されます。
36) 「git log」の用途は何ですか?
プロジェクト履歴内の特定のコミットを作成者、日付、コンテンツ、または履歴ごとに検索するには、「git log」が使用されます。
37) 「git add」は何に使用されますか?
「git add」は、既存のディレクトリ内のファイルの変更をインデックスに追加します。
38) 「gitリセット」の機能は何ですか?
の機能 「Git リセット」 インデックスと作業ディレクトリを最後のコミットの状態にリセットすることです。
39) git Is-tree とは何ですか?
「git Is ツリー」 各項目のモードと名前、および BLOB またはツリーの SHA-1 値を含むツリー オブジェクトを表します。
40) git instaweb はどのように使用されますか?
「Gitインスタウェブ」 自動的に Web ブラウザにアクセスし、ローカル リポジトリへのインターフェイスを備えた Web サーバーを実行します。
41) git の「フック」は何で構成されていますか?
このディレクトリには、対応するGitコマンドの実行後に起動されるシェルスクリプトが格納されています。例えば、gitはコミットの実行後にコミット後のスクリプトを実行しようとします。
42) コミットメッセージとは何ですか?
コミットメッセージは、変更をコミットするときに表示される git の機能です。 Git には、コミットで行われた変更を入力できるテキスト エディターが用意されています。
43) 壊れたコミットを修正するにはどうすればよいですか?
壊れたコミットを修正するには、コマンド「git commit - 修正”。 このコマンドを実行すると、エディターで壊れたコミット メッセージを修正できます。
44) 既存のコミットを修正するのではなく、追加のコミットを作成することが推奨されるのはなぜですか?
理由はいくつかあります
a) 修正操作は、コミットで以前に保存された状態を破棄します。コミットメッセージのみが変更される場合は問題ありませんが、内容が修正される場合は、重要な情報が削除される可能性が高くなります。
b) 「git commit-amend」を悪用すると、小さなコミットが増大し、無関係な変更が取得される可能性があります。
45) GIT の「ベア リポジトリ」とは何ですか?
特に複数のコンピュータからプロジェクトに取り組んでいる場合、分散開発および開発者チームと調整するために、「ベア リポジトリ」が使用されます。 ベア リポジトリは、コードのバージョン履歴で構成されます。
46) Git リポジトリ ホスティング サービスをいくつか挙げてください
- ピカコード
- Visual Studio オンライン
- GitHub
- Gitエンタープライズ
- SourceForge.net
とても助かりました。 よろしくお願いします。
よくある質問をまとめていただきありがとうございます
本当にありがとう。
トラブルシューティング、プラグイン、Microsoft ツールのサポート、および解決手順の一般的なエラーについて、さらに詳しい Q&A が必要です。
コンセプトについてはtq..
すばらしい、質問と回答、面接の準備に役立ちます
こんにちはチーム、
私たちは、コードをさまざまな個別のブランチにコミットする約 10 人の開発者で構成される Python プロジェクトに取り組んでいます。 支店の数はほぼ 80 ~ 85 です。 実稼働環境でのデプロイ中に、その特定の日に GitHub 上で行われた最近のコミットを分離し、マスター ブランチにプルする必要があります。 この問題をどのように解決すれば、開発者が開発ブランチでコードをコミットし、正常になった後にステージングおよび運用環境に後でマージできるようになります。
なぜ異なるブランチを使用しているのでしょうか? 異なるモジュールまたはファイルで作業していることを考慮すると、それらがすべて同じブランチで作業する方が良いのではないでしょうか。
ありがとう。 これは役に立ちます! 続けて ! ありがとう !!
こんにちは。 Git の面接の質問の範囲では、タグ付けのトピックを理解することも重要だと思います
ありがとうございました。
感謝
すべてをカバーします。 よかった、ありがとう