Git概念まとめ1部
Gitの歴史
従来LinuxカーネルはBitKeeperバージョン管理システムを介してオープンソースとして動作していた.これはユーロサービスですが、Linuxに無料で公開されています.Linuxコミュニティの開発者の誤りにより、BitKeeperとLinuxコミュニティの関係に問題が発生し、BitKeeperはLinuxコミュニティへの関心を停止し、使用料を有料に変更しました.
そのため、Linuxを作成したLinuxTobalsは、BitKeeperを有料で使用するよりも、自分で新しいバージョン管理ツールを作成して登場したのがGitです.現在、Gitは世界で最も膨大で強力な分散バージョン管理システムとなっている.
Git機能
Gitの最大の利点は「迅速な分散バージョン管理」です.
GitとGithub
ここに来た人なら、Githubは知っているはずです.実はGitとGithubは明らかに違います.Gitはバージョン管理システムで、サーバではありません.Gitを使ってバージョン管理はできますが、サーバーがアップロードできなければ役に立たないです.そこで、Gitのためにいくつかのサーバ(Github、Gitlabなど)を用意し、その中で最も有名で、最も無料で公開されているのはGithubです.そしてgithubcomはgithubサーバ上でgitのフロントエンドページとサービスを使用するのに役立ちます.
リポジトリ(リポジトリ)
リポジトリは、ローカル・リポジトリとサーバ・リポジトリに大きく分けることができます.簡単に、サーバ上のコードをローカルストレージ(
clone
またはpull
)として受信し、必要に応じて変更してアップロードすればよい(push
).この「ダウンロードやアップロードなどのタスク」の職場がリポジトリです.通常、リポジトリのサイズはかなり大きいです.1つのサービスにおいて,コード単位でインタラクションを行うものはすべて同じリポジトリにあると考えられる.Webページのfrontendを作成したとすると、そのWebページのfrontendを作成するときに追加されるすべてのコードがリポジトリに含まれます.実際に大きなコードでは、コード全体をダウンロードするだけで数時間かかる場合があります.
前述したように、リポジトリに1000個のファイルがあるが、変更する機能が非常に小さい場合は、1000個のファイルをダウンロードし、そのうちの1つのファイルで1行を変更してアップロードする必要がある場合があります.このように見ると欠点のように見えますが….通常、ローカルでどのコードを使用して構築しても、完全なコードが必要です.これは逆にメリットです.
ステージ(トレース)
ローカルでコードをダウンロードすると、サーバで見たrepositoryにコードがあるように、ローカルで見たのはフォルダのコードです.このとき、Gitはフォルダにどのファイルがあるかを自動的に認識します.その後、ユーザの命令に従ってGit上でこれらのファイルを追跡するかどうかを決定する.repositoryをローカルでコピーした場合.git履歴を管理するフォルダであるgitフォルダを見たことがあるはずです.変更履歴、ファイル追加履歴などすべての内容がこのフォルダに保存されます.
ここで、トレースとは、Gitがファイルの変化を自動的に検出し、コミットまたはプッシュ時にそのファイルが含まれているかどうかを指す.全て追跡すれば良いと考えられますが、思ったほどではありません.たとえば、ローカルで生成できるコンテンツをアップロードする必要はありません.たとえばdoxygen、package fileなどは、「何かをダウンロードする」とだけ言って、ローカルで構築をダウンロードしたほうがいいです.reactの
node_modules
フォルダなどです.したがって、通常は、必要なファイルのみをステージにします.ステージは
add
コマンドを使用します.一度だけadd
を作成すると、Gitはその後、ファイルのすべての内容を追跡します.変更、変更時間、削除、削除時間など...もちろん、うっかりファイルをステージにしてしまうと、ステージを行わない方法もあります.それはすべての書類に対して
git add
をすることはできませんか.そうではありません.このとき使用されるのが.gitignore
です.このファイルはGitが追跡しないファイル(のパターン)を指定しています.一般的には、.gitignore
ファイルを作成し、git add .
を行います..gitignore
で指定されたファイルを除いて、すべてのファイルが自動的にステージされます.コミット(コミット)
以前、コードをダウンロードしてアップロードするプロセスは、非常に大きなコードをダウンロードして、非常に大きなコードをアップロードすることでした.ただし、Gitを使用したことがある場合、Gitの大きな利点は、「すべて」の変更履歴を表示し、いつでもその時点に戻ることです.では、これらのすべての時点をコピーし、その時点のスナップショットを保存するかどうか.そうではありません.
commit
は水晶の歴史の破片です.ファイルの追加、ファイルの変更(数回と数回の行の削除、数回と数回の行の追加など)などの情報を格納します.これはリンクリストのようなもので、今2回コミットしたら、원본 코드 -> (커밋 1ebd72)몇번 줄에 뭐라고 쓰고 몇번 줄은 지운다 -> (커밋 1deea5)또 뭔가 쓰고 뭔가 지운다 -> 현재 코드
このように続いていきます.したがって,中間フェーズのコミットに失敗すると,前の履歴も失敗する.gitフォルダに触らないでください.もちろん彼を動かさないようにGitは内部で彼を捕まえるどうせ.また,このコミット履歴はローカルに格納されているという意味でオフラインで動作できる.コミットはサーバと対話するアクティビティではありません.これはGitの大きな利点です.
気づいたかもしれませんが、プシーもそうです.コード全体をサーバにアップロードするのではなくgitフォルダに保存されているコミット履歴リストをプッシュします.したがって、ローカルでファイルを変更しようと努力しても、コミットしなければ、
push
コマンドをいくら入力しても、サーバ上のコードは変更されません.プッシュ可能なものはありません.(実際、Gitは興奮して警告を出して、もしあなたがpush
を提出したいなら、提出します.)Reference
この問題について(Git概念まとめ1部), 我々は、より多くの情報をここで見つけました https://velog.io/@woohm402/Git-개념-총정리-1부テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol