gitの難しさ
増井俊之.icon
gitが難しい理由はいろいろあるが、普通のファイルをUnixコマンドで扱えないのは辛いと思う 昔のファイルにアクセスするのがとても難しい
1週間前にどんなファイルを使ってたか、とか簡単に見ることができない
findを使ってファイルを探すこともできない
古いファイルにアクセスするには、データベース操作コマンドが必要である
コマンドラインからSQLを叩いているようなものである データベース操作コマンドが難しいし
貧民的でも各時刻ごとのファイルがあるように仮想ファイルシステムで見せかけることができるのではbsahd.icon
実際は差分のみ保存し、時刻付きファイル名でアクセスがあればその時点での内容を差分から計算する
このようにアクセスできる
cat ./history/202408181554/branch/path/to/example.txt
相対的日付指定でシンポジックリンクができる
cat ./history/before_1w/branch/path/to/example.txt
findは差分をソースにした検索機能があればよさそう
こういうのは気にならないのだろうか?
古いファイルにアクセスする機会がまだないので気になっていませんtakker.icon
古いファイルをどうしてもみたいときはGitHubでリンクをポチポチ押してみてます
趣味でしかcode書いていないのもあるかも
昔のファイル構成とか知りたくなりませんか? 増井俊之.icon
頻繁に使うと知りたくなるかもしれませんtakker.icon
実際、よく作っているUserScriptとかは、少し前のversionがどう動いていたかを知りたくなる
しかし上書き更新しているので前のversionを簡単に使えないという……
GitHub(など)で見ればいいや、と思ってますodiak.icon基素.icon
エディターがGitを駆使してこういう表示をする機能がある基素.icon
つらすぎるdnin.icon
過去のコミットを検索して、checkoutしてファイル見るとか
儀式が多すぎ
おそらくコマンド・ワンライナーを覚えると簡単に使えるようになるんだと思う。覚えられればだけど()takker.icon sta.icon
本質的に難しいってのは常々感じる
プログラマのプログラマによるプログラマのためのガチツールなので、「初心者のためのわかりやすいメタファー」みたいなのは度外視で、とにかく「こういう概念があったら便利だよね」「こういう概念も必要だね」とプログラマブルに体系化されてつくられていると感じる
その分、gitの仕組みを学ぶことは技術者としては非常に面白い(面白そう(僕はまだ踏み込んだことない(よほど暇になれば手を出してみたい
非常に面白いkuuote.icon
基本構造がよくできていると感じる
ちなみに基本構造を知るのがgitの難しさを緩和するのに一番効くと思っていますkuuote.icon うまく表現できない
一人利用する分には(慣れれば)さほど難しくない
upload, downloadくらいに帰着できる
エイリアスとかラッパーを書いてそんな感じの使い心地にすればいい
履歴操作や複数人連携(mergeやらrevertやら)については何度やっても忘れる
がっつり使っている間はさすがに慣れてくるが、ちょっと離れたらもう忘れる
コマンドのメモやノートがどんどん膨れ上がっていくぅ。。。
今は「とりあえずとにかく全員git使う!」になってる風潮(?)があるので、もうちょっと簡単な手段用意してもらえるとありがたいなってのがある VSCode(他エディタ)の拡張機能とかを使うと、(個人利用の範囲では)何となくでいけるyosider.icon
なお理解は進まない
VSCodeさん、使いやすそうですね(gitはいちいちコンソールに切り替えてそっちでコマンド打って使ってた)
GUIで扱えばそこまで難しくないような気がする..?blu3mo.icon
(CUIで扱ったことはないし、今後学ぶつもりもない)
CUIのコマンドはかなり酷くて「undoコマンド必要だろ」と思ってたのだがVSCodeで普通にUndo Last Commitとかできるようになってて「これだよこれ!」という気持ちになったnishio.icon
Diffの表示とか部分的なstagingとかブランチの表示とか、本質的にGUIでやるべきことをCUIでやったせいで難しかったのだと思う
なのでもし「GUIでやるなんて甘えだ!CUIを学ぶべき」という人がいたらぶん殴っていきたい(誇張)
CUIを知っている人からすると、そのUndoはCUIでいうとgit reset HEAD^ですか?という風に考えてしまうodiak.icon
なるほどwblu3mo.icon
反git的主張が腑に落ちた
環境をインストールして設定入れてとかしないといけない、という導入の難しさもある
windowsの場合
VSSが生きていれば、、と思ったけどそっか、、いまはMicrosoftがgithubやってるのか。。 kyamad9.icon
最初は結構苦労した覚えがある
慣れるのに時間かかる
半 CLI 半 GUI 勢
グラフィカルに見たいものは VSCode の一部拡張機能入れているみたいな感じ
変更履歴見るよう
誰が最後に編集したのか、とか色々見やすくなる
git add git commit とか基本的な操作は CLI でやって、グラフィカルに表示したほうが良い(差分とか)モノは GUI でやっている
意識してやってるわけではないけどそうなっている