MarkdownとBullet Journal

いわゆるプログラマーのつぶやき

2021-09-01から1ヶ月間の記事一覧

【Git】同時に複数の作業ディレクトリを扱う

複数ブランチを同時編集 Gitで複数のブランチを同時編集したい場合、git checkout ブランチ名で頻繁に移動しながら編集することになるが、都度別ブランチのfileを確認しようとすると不便なため、全く別のフォルダに暫定的にコピーしたり、stashしたり、別ク…

【Git】複数PCを用いたresetやamend利用法

commit改変時の複数PCのリポジトリの合わせ方 個人開発では会社用と自宅用にそれぞれPCを置いて同じリポジトリを用いながら編集を継続する運用方法がある(私もそう)。その場合、どちらかのPCでリモートからpull&更新&commit&pushを行い、もう1台のPCを…

【Git】リポジトリをコンパクトにする

リポジトリのディスク容量を削減する 開発を何年も継続し続けるとリポジトリもそれなりの規模になる。エンジニアの心理としてはリポジトリを整理したくなるもので、5種類の方法を紹介する。 方法 過去へのアクセス 削減度 作業の手軽さ git-gc ◎ 50%~ ◎ pa…

【Git】実はファイルを差分でも保存する

Gitのファイル管理の続き 前回の記事でGitは作業ディレクトリ内のGit追跡fileを、staging及びcommit履歴に"blob"と呼ばれる圧縮独自フォーマットのfileで全て保存していることを説明した。 programmingforever.hatenablog.com またその各file(blob)はsnaps…

【Git】内部のファイル管理

Gitのfile管理方法 Gitは内部のfile管理のイメージを掴むと理解が一気に進む。そこで図とログを同時に扱ってGitが3大ツリーでfileをどう扱っているかなどを説明しgit resetの動きも理解出来る図を掲載した。 Gitの3大ツリーでのfileの扱い 3大ツリーでのf…

【Git】stashで退避する範囲

git stashの有効範囲を調べる 以前の記事でも記載した様にGitは、fileを6つの状態で扱う。 programmingforever.hatenablog.com そこで、その内ローカル側の5つの状態のfileをgit stashコマンドでどの様に退避するのかをまとめた。但しcommitはstashの対象に…

【Git】ファイルの6つの状態

Gitではfileが6つの状態に遷移する Gitではいわゆる3大ツリーである、commit(commit履歴)、staging(ステージング、index、インデックス)、作業ディレクトリ(Working directory)を用いてfile管理を行なっている。 これをもう少し細かく見るとfileには…

【Git】rm:ファイルを削除 or 管理から外す

git rm コマンド git追跡fileの削除はシェルのrmコマンドではなく、git rmコマンドを使う。 最初に現在の編集状況を解説し、次に丸数字の順に説明する。 想定する現在の編集状況(ある開発中の状態) 社内業務用のシェルプログラムのプロジェクトとする 10回…

【Git】ハンク操作

Gitは行単位でstagingやresetが出来る 作業ディレクトリの変更内容をステージングする git add files コマンド ステージングをクリアする git reset files コマンド 作業ディレクトリをステージングの内容に戻す git checkout files コマンド。 指定commitの…

【Git】開発環境を新しいMacに移す

内容 Windows10で開発中の開発環境、Git 、開発プログラムを遠隔のMacにGitHubを介して移す作業一式を述べる。なおGItHubに仕様変更があり、2021.8.14以降に同様の作業を考えている方に役立つ内容だと思う。 Macの用意 別記事で述べた内容で準備する。この内…

【Git】リカバリーメモ

目的 色々とリカバリーするコマンドをまとめた stashを誤って削除した際の復元方法 stashはpopコマンドやdropコマンドで削除出来るが、誤って必要なstashを削除しても復元できる(有効期限あり) $ # stash復元方法 $ # ①シェル画面をバックスクロールしてst…

【Git】reset , checkout , 「 . 」有無の比較表

間違えやすい操作を表で整理 以前にgit checkoutとgit resetをまとめたが、各コマンド後のステージング(staging, index)と作業ディレクトリのファイルの変化を比較表で整理し直した。特に全file選択を意味する末尾の「.」の有無で、 git checkout "指定com…