Githubインタビューの質問
ローカルウェアハウス:ローカル
リモートウェアハウスに構築されたフォルダー:インターネット上のサーバーにビルドされたフォルダー
分散バージョン管理システム
1.ステートメントを持つ2つのウェアハウス、コンピューター上のローカルウェアハウス、およびリモートウェアハウスサーバーにはリモートウェアハウス
2 があります。ファイルを送信するときは、まずローカルウェアハウスに送信し、次にネットワークがある場合はローカルウェアハウスからネットワーク上のリモートウェアハウスに送信します。
3. GITは典型的な分散バージョン管理システムです
Q. GitとGitHubの違いは何ですか
- ギット
- Gitは、ソフトウェア開発中にソースコードの変更を追跡するために使用される分散バージョン管理システムです。プログラマ間の作業の調整に役立ちますが、任意のファイルセットの変更を追跡するために使用できます。Gitの主な目標は、速度、データの整合性、および分散型非線形ワークフローのサポートです。
- GitHub
- GitHubはGitリポジトリホスティングサービスであり、独自の機能の多くを追加します。GitHubは、Webベースのグラフィカルインターフェイスを提供します。また、各プロジェクトのアクセス制御といくつかのコラボレーション機能、基本的なタスク管理ツールも提供します。
Q. Gitとは
- Gitは分散バージョン管理システム(DVCS)です。ファイルの変更を追跡し、変更の特定のバージョンに戻すことができます。
- すべての開発者はリポジトリのコピーを「クローン」して、プロジェクトの完全な履歴をハードドライブに保存できるため、サーバーがダウンした場合、必要なすべてのリカバリデータはチームメイトのローカルGitリポジトリにあります。
- 開発者が変更を送信して他のチームメンバーと共有できる中央クラウドリポジトリもあり、図に示すように、すべての共同編集者が「リモートリポジトリ」に変更を送信しています。
Q. Gitはどの言語で書かれていますか?
- GitはC言語を使用します。Gitは高速で、C言語は高水準言語に関連するランタイムオーバーヘッドを削減することでそれを可能にします。
Q. Gitのいくつかの基本的なコマンドとその使用方法の説明
コマンド | 使用法 |
---|---|
$ git clone | リモートウェアハウスのクローンを作成する |
$ git init | ローカルリポジトリを初期化する |
$ git add。 | 変更されたすべてのファイルを追跡する |
$ gitステータス | ステータスを確認する |
$ git commit -m「コミットメッセージ」 | 更新されたすべての文書を提出する |
$ gitブランチ | ブランチを表示 |
$ gitブランチ | ブランチを作成する |
$ gitチェックアウト | スイッチブランチ |
$ gitマージ | ブランチをマージ |
Q. Gitで送信されるコマンドは何ですか?
- 書き込み送信コマンドはgit commitです
- 初めて新しいファイルを送信する必要がある場合は、git commit -aの前にgit addを実行できます。
Q.提出オブジェクトには何が含まれますか?
commitオブジェクトには、次のコンポーネントが含まれています
-
特定の時点でのプロジェクトのステータスを表す一連のファイル
-
親コミットオブジェクトへの参照
-
SHAI名、40文字の文字列、送信されたオブジェクトの一意のID
Q. Git configの機能は何ですか?
- Gitはユーザー名を使用して、コミットをIDに関連付けます。Git configコマンドを使用して、ユーザー名を含むGit構成を変更できます。
- ユーザー名とメールIDを提供して、送信をIDに関連付け、特定の送信を行ったユーザーを確認できるようにするとします。
- git config -global user.name "Your Name":このコマンドはユーザー名を追加します。
- git config –global user.email“ Your E-mail Address”:このコマンドはメールIDを追加します。
Q. Gitのリポジトリとは何ですか?
- Gitのリポジトリは、Gitがすべてのファイルを格納する場所です。Gitはローカルリポジトリまたはリモートリポジトリにファイルを保存できます。
Q. Gitでリポジトリを作成する方法
- リポジトリを作成するには、まずプロジェクトのディレクトリを作成し(そのディレクトリが存在しない場合)、次にgit initコマンドを実行します。このコマンドを実行すると、プロジェクトのディレクトリに.gitディレクトリが作成されます。
Q.使用する次のブランチ戦略について説明してください
-
機能ブランチ
- 機能ブランチモデルは、ブランチ内の特定の機能に対するすべての変更を保持します。機能が完全にテストされ、自動テストによって検証されると、ブランチはメインサーバーにマージされます。
-
タスクブランチ
- このモデルでは、各タスクは独自のブランチに実装され、タスクキーはブランチ名に含まれています。どのコードがどのタスクを実装しているかは簡単にわかります。ブランチ名でタスクキーを探すだけです。
-
リリースブランチ
- 開発ブランチに十分なリリース機能が用意されたら、ブランチを複製してリリースブランチを作成できます。このブランチを作成すると、次のリリースサイクルが開始されるため、新しい機能を追加することはできません。このブランチには、バグ修正、ドキュメントの生成、およびその他のリリース指向のタスクのみを含める必要があります。リリースの準備ができると、バージョンはマスターサーバーにマージされ、バージョン番号が付けられます。さらに、リリース以降の進捗状況を開発ブランチにマージする必要もあります。
Q.ブランチがマスターにマージされている場合、どのような方法で知ることができますか?
- ブランチがマスターにマージされたかどうかを確認するには、次のコマンドを使用できます。
- git branch --merged現在のブランチにマージされたブランチを一覧表示します。`
git branch –no-merged
まだマージされていないブランチが一覧表示されます。
Q. Gitでの「競合」とは
- Gitは、自動マージ機能を使用して、ほとんどのマージを単独で処理できます。競合は、2つの別々のブランチがファイル内の同じ行を編集する場合、またはファイルが1つのブランチで削除されて別のブランチで編集される場合に発生します。チーム環境で作業する場合、競合が発生する可能性が最も高くなります。
Q. Gitでの競合を解決する方法
- 競合の原因となっているファイルを特定する
- 再度競合を回避するために、ファイルに必要な変更を加えます
- コマンドgit addを使用してこれらのファイルを追加します
- 最後に、コマンドgit commitを使用して、変更されたファイルを送信します