0
0

More than 1 year has passed since last update.

gitやLinuxコマンドについて

Last updated at Posted at 2022-11-14
目次
gitとgithubの概念

(個人の抽象てきな理解、正しい概念はオフィシャルドキュメントを参考ください)

  • gitはローカル環境中のファイル管理システム、githubはgitの資材をリモート環境(ネット環境)で保存する為のシステム
    スクリーンショット 2023-01-11 16.27.34.png

  • gitの機能は簡単に言う、平行世界を作って、同じファイル(特にjava、python、html等のコード)に対して、違うバーシュンとして保存する。

    • gitの中、一つの平行世界をブランチ(branch)と呼ぶ、同じファイルは違うブランチの中では、内容も違う。例えは同じ「A.txt」ファイルとして、各ブランチの中では違う内容を保存している。
      スクリーンショット 2023-01-11 16.41.13.png
    • gitでは、フォルダでファイルの管理範囲を決めっている。例えは、フォルダ「A」をgitで中身のファイルを管理と設定した後、フォルダ「A」外のファイル「E」はgitの管理を受けない。
  • gitで同じファイルに対して、わざわざ複数のバージョンを保存する理由は、プログラマーがコードを書く時、過去でどの様な機能を想定したのか? 本来の意図は何か? 元のロジックは何なのか? 誰か何時度の部分のコードを弄ったのか? この様な詳細な「歴史記録」を残す為、gitでソースコードを管理する。

    • その為、gitは先言った、「平行世界」の他、「歴史記録」と言う機能もある。一つのブランチ中のファイルを修正する時、毎回「今回修正の歴史」をgitに記録させる作業が必要。一つの歴史を一つの「commit」と呼。
      スクリーンショット 2023-01-11 17.50.04.png
    • gitは一つのファイルに対して、複数のブランチを分け、そして各ブランチでは、それぞれの歴史を持っている。
      スクリーンショット 2023-01-12 11.05.02.png
  • gitには、一つのブランチに、他のブランチからの「歴史記録」を受ける機能がある

    • 簡単に言うと、ターゲットブランチ(受ける側)と合併したいブランチ(提供側)を比較し、合併したいブランチの内容と歴史をターゲットブランチに反映させる。このブランチの合併は「merge」と呼ぶ
      スクリーンショット 2023-01-12 11.22.20.png
    • ここで注意すべきのは、ブランチをmergeの時、根本的には、二つのブランチの歴史記録が比較される、つまり、たとえ二つブランチのファイル内容が同じたとしても、歴史が違う場合、この二つのブランチの間には差が存在する
      スクリーンショット 2023-01-12 11.43.59.png
    • もし同じファイルがどちらのブランチでも編集された場合、この時mergeすると、衝突(conflict)が発生する。この時、どちらの歴史を保存すべきなのかを選ぶ必要が有る
      スクリーンショット 2023-01-12 11.37.01.png
git Revert について

一度「init dev03」Revertされた作業ブランチをpc01ブランチへmerge後、他に「init dev03」含めるブランチをpc01へmergeの時、作業ブランチに対するRevert処理が不要。

grepでファイル内容対照

grep -vwf <fileB> <fileA> | wc -l
行分けfileA内容をfileB内で検索、fileAのみ存在内容をアウトプット; | wc -lを付けと行数だけを表示 参考URL1 参考URL2 参考URL3

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0