10分以内にGitの基本を学ぶ

はい、タイトルはクリックベイトです。たった10分でgitテクノロジーの基本を理解する方法はありません。しかし、あなたは約25分でかなり近づくことができます。そしてそれがこの記事の目的です。

Gitテクノロジーの学習を開始したい場合は、適切な場所に来ています。これは、Gitの包括的な初心者向けガイドです。Gitには多くのクライアントがいます。技術はクライアントに関係なくすべて同じです。ただし、このガイドでは、GitHubを使用してGitを理解します。

始めましょう!

バージョン管理とは何ですか?

バージョン管理は、特定のバージョンを後で呼び出すことができるように、ファイルまたはファイルのセットへの変更を経時的に記録するシステムです。したがって、理想的には、バージョン管理されているコンピューター内の任意のファイルを配置できます。

うーん…わかりました…でもなぜトー?

理由は次のとおりです。

バージョン管理システム(VCS)を使用すると、ファイルを以前の状態に戻し、プロジェクト全体を以前の状態に戻し、時間の経過とともに行われた変更を確認し、問題の原因となっている可能性のあるものを最後に変更したのは誰か、問題を引き起こしたのは誰かを確認できます。いつ、そしてもっと。また、VCSを使用すると、問題が発生したりファイルが失われたりした場合でも、通常は簡単に回復できます。そして、「誰がこのがらくたを書いたの」を知りたいだけで、その情報にアクセスできることは価値がありますか?

では、Gitとは何ですか?

Gitは、コンピューターファイルの変更を追跡し、それらのファイルの作業を複数の人の間で調整するためのバージョン管理システムです。 Gitは分散バージョン管理システムです。そのため、Gitは、プロジェクトのファイルのすべてのバージョンを保存するために、必ずしも中央サーバーに依存しているわけではありません。代わりに、すべてのユーザーがリポジトリ(ファイルのコレクション)のコピーを「複製」し、プロジェクトの完全な履歴を自分のハードドライブに保存します。このクローンにはオリジナルのすべてのメタデータが含まれていますが、オリジナル自体はセルフホストサーバーまたはGitHubなどのサードパーティのホスティングサービスに保存されています。

Gitは、コードに加えた変更追跡するのに役立ちます。これは基本的にコードエディタの履歴タブです(シークレットモードなし?)。コーディング中の任意の時点で致命的なエラーが発生し、その原因がわからない場合は、いつでも安定した状態に戻すことができます。したがって、デバッグに非常に役立ちます。または、時間の経過とともにコードにどのような変更を加えたかを簡単に確認できます。

上記の例では、3つのカードすべてが同じファイルの異なるバージョンを表しています。使用するファイルのバージョンはいつでも選択できます。そのため、git時間の連続体でファイルの任意のバージョンにジャンプしたり移動したりできます。

Gitは、複数の人の間でコード同期するのにも役立ちます。それで、あなたとあなたの友人がプロジェクトで協力していると想像してください。あなたは両方とも同じプロジェクトファイルで作業しています。これで、Gitはあなたとあなたの友人が独自に行った変更を取得し、それらを単一の「マスター」リポジトリにマージします。したがって、Gitを使用することで、両方が最新バージョンのリポジトリで作業していることを確認できます。したがって、ファイルを相互にメールで送信したり、元のファイルのとんでもない数のコピーを処理したりすることを心配する必要はありません。そして、長距離のコラボレーションはHTMLと同じくらい簡単になりますか?

Gitワークフロー:

Gitコマンドの操作を開始する前に、Gitコマンドが何を表しているのかを理解する必要があります。

リポジトリとは何ですか?

リポジトリ別名レポは何もなく、ソースコードの集まりではありません。

Gitワークフローには4つの基本的な要素があります。

作業ディレクトリステージングエリアローカルリポジトリリモートリポジトリ

作業ディレクトリ内のファイルを検討する場合、3つの状態が考えられます。

  1. ステージングできます。つまり、変更が更新されたファイルは、ローカルリポジトリにコミットされるようにマークされていますが、まだコミットされていません。
  2. 変更することができます。つまり、変更が更新されたファイルはまだローカルリポジトリに保存されていません。
  3. コミットできます。これは、ファイルに加えた変更がローカルリポジトリに安全に保存されることを意味します。
  • git add 作業ディレクトリにあるファイルをステージング領域に追加するために使用されるコマンドです。
  • git commit ステージングされるすべてのファイルをローカルリポジトリに追加するために使用されるコマンドです。
  • git pushローカルリポジトリ内のコミットされたすべてのファイルをリモートリポジトリに追加するために使用されるコマンドです。したがって、リモートリポジトリでは、すべてのファイルと変更は、リモートリポジトリにアクセスできるすべてのユーザーに表示されます。
  • git fetch は、リモートリポジトリからローカルリポジトリにファイルを取得するために使用されるコマンドですが、作業ディレクトリには取得されません。
  • git merge ローカルリポジトリから作業ディレクトリにファイルを取得するために使用されるコマンドです。
  • git pullリモートリポジトリから作業ディレクトリに直接ファイルを取得するために使用されるコマンドです。agit fetchおよびaと同等git mergeです。

Gitとは何か、そしてそれが基本的な用語であることがわかったので、gitの下にファイルを配置する方法を見てみましょう。私たちはそれを正しい方法と難しい方法で行うつもりです。GUIアプリケーションなし。

バージョン管理下に置きたいファイルがすでにあると仮定します。そうでない場合は、「MuskCult」という名前のサンプルフォルダーを作成し、その中にいくつかのサンプルコードファイルを配置します。

ステップ0:GitHubアカウントを作成します。ええと。

まだお持ちでない場合は、こちらで作成できます。

ステップ1:マシンにGitがインストールされていることを確認します。

Macを使用している場合は、ターミナルを起動して次のコマンドを入力します。

$ git --version

まだgitを持っていない場合は、インストーラーを開くように求められます。したがって、インストーラーを使用してセットアップします。すでにgitをお持ちの場合は、インストールしたgitのバージョンが表示されます。

Linux(deb)を実行している場合は、ターミナルに次のように入力します。

$ sudo apt install git-all

Windowsを使用している場合:

$ get a mac

冗談です…リラックス…私が引き起こした人の数…ふぅ…

入手方法の詳細については、このリンクまたはこのリンクにアクセスしてください。

ステップ2:あなたが誰であるかをGitに伝えます。

自己紹介をしてください。スライドインします。Gitのコミットごとにこの情報を使用して作成者として識別されるため、Gitのユーザー名とメールアドレスを真剣に伝えてください。

$ git config --global user.name "YOUR_USERNAME" 
$ git config --global user.email "[email protected]"
$ git config --global --list # To check the info you just provided

ステップ3:既存のSSHキーについてマシンを生成/チェックします。(オプション)

なぜ聞くの?使用してSSHプロトコルを、次のことが可能に接続して認証のRにエモートサーバとサービス。SSHキーを使用すると、訪問のたびにユーザー名やパスワードを入力しなくてもGitHubに接続できます。

SSHの詳細については、このリンクをたどってください。

ここに行く既存のSSHキーがあるかどうかを確認します。

ここに移動てSSHキーを生成します。

ここに行くSSHキーをGitHubアカウントに追加します。

そして最後にここに行って接続をテストします。

SSHをセットアップした場合、リンクを含むすべてのgitコマンドは次のように置き換えます。

Instead of : //github.com/username/reponame
You use : [email protected]/username/reponame.git
 Note : You can use both ways alternatively

このチュートリアルではSSHプロトコルを使用します。

ステップ4:Gitしましょう

GitHubに新しいリポジトリを作成します。このリンクをたどってください。

次に、ターミナルのgitの下に配置するフォルダーを見つけます。

$ cd Desktop/MuskCult

Gitを初期化します:

そしてそれをgitの下に置くには、次のように入力します。

$ touch README.md # To create a README file for the repository$ git init # Initiates an empty git repository

次に、README.mdファイルを編集して、リポジトリに関する情報を提供します。

コミットのためにステージング領域にファイルを追加します。

次に、コミットのためにファイルをgitリポジトリに追加します。

$ git add . # Adds all the files in the local repository and stages them for commit
OR if you want to add a specific file
$ git add README.md # To add a specific file

コミットする前に、どのファイルがステージングされているかを見てみましょう。

$ git status # Lists all new or modified files to be committed

Gitリポジトリに加えた変更をコミットします。

次に、gitリポジトリに追加したファイルをコミットします。

$ git commit -m "First commit"# The message in the " " is given so that the other users can read the message and see what changes you made

Gitリポジトリに加えた変更のコミットを解除します。

ここで、コードにエラーが発生したか、リポジトリ内に不要なファイルを配置したとすると、次のコマンドを使用して、追加したファイルのステージングを解除できます。

$ git reset HEAD~1# Remove the most recent commit# Commit again!

リモートオリジンを追加してプッシュします。

これで、ファイルに変更を加えて保存するたびに、GitHubで自動的に更新されなくなります。ファイルに加えたすべての変更は、ローカルリポジトリで更新されます。次に、マスターへの変更を更新します。

$ git remote add origin remote_repository_URL# sets the new remote

gitのリモートコマンドを使用すると、ビュー、および他のリポジトリへの削除の接続を作成することができます。

$ git remote -v# List the remote connections you have to other repositories.

Gitのリモート-vコマンドリストあなたが持っているリモート接続のURLを他のリポジトリへ。

$ git push -u origin master # pushes changes to origin

これで、git pushコマンドは、ローカルリポジトリ内の変更を、オリジンとして指定したリモートリポジトリにプッシュします。

そして今、GitHubのリポジトリページにアクセスして確認すると、次のようになります。

以上です。GitHubで作成したリポジトリにファイルを追加しました。

ファイルに加えた変更を確認してください。

ファイルに変更を加えて保存すると、ファイルはgitにコミットされた最後のバージョンと一致しなくなります。行った変更を確認するには:

$ git diff # To show the files changes not yet staged

Gitリポジトリに最後にコミットされたバージョンに戻します。

これで、次のように入力して、最後にコミットされたバージョンに戻すことを選択できます。

$ git checkout .
OR for a specific file
$ git checkout -- 

コミット履歴の表示:

git logコマンドを使用して、ファイルに対して行ったコミットの履歴を確認できます。

$ git log

GitHubに反映させたい変更を加えるたびに、最も一般的なコマンドのフローは次のとおりです。

$ git add .$ git status # Lists all new or modified files to be committed$ git commit -m "Second commit"$ git push -u origin master

これで、リポジトリを確認すると、各ファイルのコミットメッセージを確認することで、コミットが成功したかどうかを確認できます。

ステップ5:それはすべてうまくいっています…しかし、GitHubで他のリポジトリをダウンロードして作業するにはどうすればよいですか?

Gitリポジトリのクローン作成:

リポジトリのクローンを作成するディレクトリを見つけます。必要なリポジトリのリンクをコピーして、次のように入力します。

$ git clone remote_repository_URL

//github.com/Gothamv/MuskCultを使用して、上記で作成したリポジトリのクローンを作成してください。

Gitリポジトリへの変更のプッシュ:

これで、必要なファイルで作業し、ローカルで変更をコミットできます。そのリポジトリに変更をプッシュする場合は、リポジトリの共同編集者として追加するか、プルリクエストと呼ばれるものを作成する必要があります。ここでその方法を確認し、コードファイルを使用してプルリクエストを送信してください。

コラボレーション:

それで、あなたとあなたの友人がプロジェクトで協力していると想像してください。あなたは両方とも同じプロジェクトファイルで作業しています。変更を加えてマスターリポジトリにプッシュするたびに、友達はあなたがgitリポジトリにプッシュした変更をプルする必要があります。作業を開始するたびに最新バージョンのgitリポジトリで作業していることを確認するという意味で、gitpullコマンドが最適です。

以下は、私の友人と私が協力しているプロジェクトの例です。

したがって、これらの変更がリポジトリのローカルコピーに反映されていることを確認するには、次のようにします。

$ git pull origin master

さらに2つの便利なgitコマンドを次に示します。

$ git fetch AND$ git merge

簡単に言うと、git fetchその後にgit merge 等しいaが続きgit pullます。しかし、なぜこれらが存在するのでしょうか?

を使用するとgit pull、Gitは自動的に作業を実行しようとします。状況依存であるため、Gitはプルされたコミットを現在作業中のブランチにgit pullマージします最初にコミットを確認しなくても、コミットを自動的にマージします

するとgit fetch、Gitは現在のブランチに存在しないターゲットブランチからコミットを収集し、ローカルリポジトリに保存します。ただし、それらを現在のブランチとマージすることはありません。これは、リポジトリを最新の状態に保つ必要があるが、ファイルを更新すると壊れることがある何かに取り組んでいる場合に特に便利です。コミットをマスターブランチに統合するには、を使用しますgit merge

もう一つ:

.gitignore

それで、それは何ですか?

.gitignore無視するファイル(またはパターン)をgitに指示します。これは通常、コンパイル製品、IDEが作成する一時ファイルなど、他の共同作業者にとって役に立たない一時ファイルを作業ディレクトリからコミットしないようにするために使用されます。

したがって、上記の例では、__ pycache __ 、. DS_Storeなどのファイルは、より高速なアクセスのために情報を格納するためにシステムによって使用されます。これは他の共同作業者には役立ちません。したがって、.gitignoreファイルを追加することで、それらを無視するようにgitに指示できます。

touchコマンドを使用して.gitignoreファイルを作成します。

$ touch .gitignore

また、次のパターンを追加して、そのようなファイルを無視するようにgitに指示できます。

/*.cmake/*.DS_Store/.user/buildetc. depending upon the files you want git to untrack

基本的にはこれでほぼ完了です。ブランチ、マージ、スタッシュ、リベースなどに焦点を当てるパート2にご期待ください。

記事を楽しんだら、その拍手ボタンを壊すことを忘れないでください、そしてあなたがパート2のために私に従うことを確認してください。

ピースアウト✌️

参照:

コマンドラインを使用して既存のプロジェクトをGitHubに追加する-ユーザードキュメント

既存の作業をGitHubに配置すると、さまざまな方法で共有およびコラボレーションできます。移行する場合… help.github.comGitで(ほぼ)すべてを元に戻す方法

バージョン管理システムの最も便利な機能の1つは、間違いを「元に戻す」機能です。Gitでは、「元に戻す」… blog.github.comコマンドラインでのGit-0.3のドキュメントをコミットすることを恐れないでください

Gitをインストールする方法は他にもあります。コマンドラインを含むグラフィカルGitアプリケーションを入手することもできます… dont-be-afraid-to-commit.readthedocs.ioコマンドラインでGitの使用を開始する| GitLab

GitLab Community Edition、GitLab Enterprise Edition、Omnibus GitLab、およびGitLabRunnerのドキュメント。docs.gitlab.com gitpull 」と「 gitfetch 」の違いは何ですか?

モデレーター注:この質問にはすでに67の回答が投稿されているため(一部は削除されています)… stackoverflow.com