タグ

gitに関するTomato-360のブックマーク (34)

  • Gitのおすすめエイリアス5選 - 詩と創作・思索のひろば

    緊急新人エンジニア応援企画! ということで自分が Git のエイリアスとして設定している便利コマンドを紹介していく。 直前のコミットに追いコミットする (git fixit) git commit --amend --no-edit もろもろ整えて git push しよう、とすると「あっちょっと修正したい」となるのはよくあること。その際いちいちコミットメッセージを書いて rebase するかというとそんな面倒はとりたくなく、一撃で終わらせたい。--no-edit でコミットメッセージを編集せずに --amend できる。 git fixit に設定している。git commit の引数をそのまま受け付けるので、git fixit -a や git fixit <file> のように使える。 メインブランチに戻る (git com) f() { remote_head=$(git symb

    Gitのおすすめエイリアス5選 - 詩と創作・思索のひろば
    Tomato-360
    Tomato-360 2022/04/03
    git fixitは割と良くやるコマンだ。エイリアスにするってことはやったことなかったな。
  • How to Write a Git Commit Message

    How to Write a Git Commit Message
  • Git と GitHub の次を妄想する

    GitHub みたいなサービスを今一から作るならどの言語・フレームワークを使うか GitHub の次は何かを考えてみるのは、現実に実現困難なのを忘れれば、なかなかに楽しいことではあります。ここではその妄想をやっていきましょう。 GitHub の抱える課題を分割すると、Git の問題と、 GitHub の提供する機能の問題に分けられると思います。自分は、Git をベースとして GitHub に勝つのは現代ではなかなか難しいと考えています。MS による買収と実際に注ぎ込まれてる資を考えると、よほど斬新な切り口でないと、 同じ Git を使っても優位性は出せません。 なので、 GitHub質的に勝つには、その基幹となる VCS から考え直すとよいのではないか、と考えています。幸いなことに(?)、Git はその優秀さは認められていますが、学習の困難さや特定のユースケースで機能しないことが知

    Git と GitHub の次を妄想する
  • GitHubみたいなサービスを今一から作るならどの言語・フレームワークを使うか

    GitHub自体がどうなっているかは分からないが、同種のサービスであるGitLabはソースが公開されている部分もあるので参考になる。よく「GitLabRuby on Rails」と言われるが、実はGitリポジトリ操作・連携の部分は別サービスに切り出されていて、それはGoで書かれていたはず。なんかソース読んでたら突然Goになったんで覚えている。ライブラリとしては多分git2goかな。Rubyにもruggedがあるが、多分パフォーマンスとかの問題で切り替えたのだろうと思われる

    GitHubみたいなサービスを今一から作るならどの言語・フレームワークを使うか
  • コミットはスナップショットであり差分ではない

    Git は紛らわしいという評判です。用語や言い回しが意味するものと、そこから想像する挙動が違ってユーザーが混乱すると言われます。これは、git cherry-pick や git rebase のような「履歴を書き換える」コマンドに最も顕著です。私の経験では、この混乱の根的な原因は、コミットは 差分 であり順番を入れ替えることができるという解釈にあります。しかし、コミットはスナップショットであって、差分ではありません! Git がリポジトリデータをどのように保存しているかを見てみると、Git を理解しやすくなります。このモデルを調べた後に、この新しい視点が git cherry-pick や git rebase のようなコマンドを理解するのにどのように役立つのかを探っていきます。 当に深く 掘り下げたいのであれば、Pro Git という書籍の Git Internals の章を読むと

    コミットはスナップショットであり差分ではない
  • Gitをもっと使いこなそう! ちょっと上級な便利コマンド32選 | 株式会社LIG(リグ)|DX支援・システム開発・Web制作

    バックエンドエンジニアのKazです。 昨今では、エンジニアにとってほぼ必須ツールとなった、ソースコードのバージョン管理ツール「Git」。今回はGitについて、ちょっと上級ですが、使いこなせばとても便利なコマンドを集めてみました。 なお、記事中のコマンドはすべて最新版のGitを想定しています。一部古いバージョンでは動作しないものも含まれていますので、バージョンの差異で非対応の場合はご容赦ください。 用例 任意指定オプションについて コマンド例の角カッコ ([])で囲まれたオプションは任意指定となります。 git log [-p] ↑この角カッコ内は任意指定 プレースホルダについて コマンド例の山カッコ(<>)で囲まれた値はプレースホルダとなります。下記に沿って適宜置き換えてください。 <branch>: ブランチ名 <path>: ファイルのパス <pattern>: 検索したい文字列やパタ

    Gitをもっと使いこなそう! ちょっと上級な便利コマンド32選 | 株式会社LIG(リグ)|DX支援・システム開発・Web制作
  • 株式会社ミクシィを退職しました - 若くない何かの悩み

    表題のとおり、株式会社ミクシィを退職しました。私は2014年の新卒入社なので、4年弱お世話になったことになります。たいへんお世話になりました。 さて、とりあえず在職中に印象に残っていることをまとめてみました。 印象に残っていること 新人賞 2015年に新人賞をもらいました。受賞者の発表は全社総会でやっていたらしいのですが、私は発表のタイミングに別室で休んでいたために何も知りませんでした。そのため残念なことに表彰時不在となりました。なお、その後に表彰時にもらえるはずの賞状が行方不明になるなど紆余曲折ありましたが、受賞を光栄に思います。 学生向け競技イベント「git challenge」 2015~2018年にかけては、壊れたgitリポジトリからの復旧などを問題とした学生向けイベント「git challenge」をやっていました。このイベントでミクシィを知ってくれた学生は、結構な確率でミクシィ

    株式会社ミクシィを退職しました - 若くない何かの悩み
    Tomato-360
    Tomato-360 2018/03/28
    gitの本買いに行こう
  • Git LFSをAmazon S3でいい感じにする話 - YDiary

    はじめに 皆さんはソースコードリポジトリの保存先として,GitHubなどのホスティングサービスをお使いでしょうか. また,リソースファイルなどのバイナリファイルを管理するためのリポジトリのサイズが肥大化していたりしないでしょうか. 実は,GitHubなどのホスティングサービスでは推奨されるリポジトリのサイズが決められており,そのサイズを大幅に超過するようなリポジトリは運営による凍結・削除の対象となってしまうことがあるのです. この記事では,そうしたリポジトリの肥大化を,バイナリファイルをソースコードとは別で管理することによって防ぐことが可能なGit LFS (Large File Storage)と,Git LFSのサーバとしてAmazon S3を活用する方法などを紹介します. 推奨されるリポジトリのサイズ 各ホスティングサービスで推奨されるリポジトリのサイズは次の通りです. GitHub

    Git LFSをAmazon S3でいい感じにする話 - YDiary
  • Git の仕組み (1) - こせきの技術日記

    目次 はじめに Git を使ったことがない方へ 生のデータが見たい方へ Git の全体像 .git の中身 Git オブジェクトデータベース 4種類のオブジェクト リファレンス リファレンスのリファレンス 大きなツリー Git オブジェクトの ID と 中身 ハッシュ関数 SHA1 の簡単な説明 tree と blob オブジェクト tree と blob の参照関係 ルートツリーの ID でツリー全体を識別する commit オブジェクト リファレンスとブランチランチランチ先頭を指すリファレンス HEAD リファレンス detached HEAD 2種類のタグ 一時待避 (stash) インデックス キャッシュとしての役割 マージ Fast-Forward マージ non Fast-Forward マージ rebase reset 2種類のブランチ 各リポジトリが自分のブランチ

    Git の仕組み (1) - こせきの技術日記
  • Git を少しでも高速、安全に使う方法を紹介 - アジャイルSEの憂鬱

    はてブを眺めてたら、なんか Git の記事がバズってたので、便乗して Git の話を書いてみた。 Oh, shit, git! http://ohshitgit.com/ 「Oh shit, git!」を簡単に和訳してみた。(追記あり) - Qiita https://qiita.com/KaminoHiroki/items/391fb421e94e82c00128 基礎知識 git-reset は危ない git reset --hard は作業ディレクトリにコミットしていない変更があった場合、全てを吹き飛ばしてしまう可能性があります。 使う前に必ず git status を実行して、作業ディレクトリの状態を確認をした方が良いです。 git-checkout は遅い checkout コマンドは作業ディレクトリの状態を変更します。このとき ファイルアクセスが発生するため遅い です。 git

    Git を少しでも高速、安全に使う方法を紹介 - アジャイルSEの憂鬱
  • Gitをバックエンドにしたタスク管理bot

    Gitをバックエンドにしたタスク管理bot posted at 2017-12-04 00:00:10 +0900 by kinoppyd この記事は、ドワンゴ Advent Calendar 2017 の4日目の記事です。 TL; DR すごい簡単なゆるいタスク管理のバックエンドに、内容アドレスファイルシステムとしてのGit使うのもまあいいんじゃないの? とおもってGemを作った。 ゆるいタスク管理システムが必要だった 通常、仕事タスク管理はJIRAとかRedmineとかGithubとかTorelloとかなんかそういう専用のやつを使うと思います。とはいえ、「もう今日は帰ってるけど、明日こののプルリク見てください」とかSlackで伝えたり、「このプルリクレビュー通ってるんで、明日マージしといて」とかSlackで伝えたり、その程度のことをチケットにするのも妙な感じです。デイリーミーティング

    Gitをバックエンドにしたタスク管理bot
  • Gitのステージング領域の正体を探る | メルカリエンジニアリング

    ソフトウェアエンジニアの @DQNEO です。こんにちは。 Gitの内部構造を深掘りするシリーズ3回目です。 前回までのお話はこちら Gitのつくりかた – Mercari Engineering Blog Gitのコミットハッシュ値は何を元にどうやって生成されているのか – Mercari Engineering Blog 今日はみんなだいすき「ステージング領域」の中身について解説してみます。 ステージング領域とは何か? 簡単に説明すると「次にコミットしたときにコンテンツとして登録されるもの」リストです。(別名「インデックス」ともいいます。) このリストは、 git addやgit rmしたときに書き換わります。 (古くはcacheと呼ばれていました。内部実装やgit diff --cachedに今もその名残があります。) git addのマニュアルに説明があります。 Git – git

    Gitのステージング領域の正体を探る | メルカリエンジニアリング
    Tomato-360
    Tomato-360 2017/04/12
    すごいなぁ
  • イラストを Git で管理したかったのでツールをつくった - blog.syfm

    イラストの管理 自分はたまにイラストを描いたりするのですが、以前からその管理方法に苦労していました。 苦労していた点は主に次の 2 点です。 バックアップ 制作過程 Gif をつくるのが面倒くさい 強い人は、短時間でもさらっとイラストを描いてしまいますが、自分は時間をものすごく掛けないとまともなものが描けないので、バックアップは結構頻繁に取ります。 手動でバックアップしようとした場合は、ふつうにファイルを複製する感じになると思います。 ただ、普段からコードを書いていて VCS を利用している身だと、どうしても原始時代かと錯覚してしまいます。 さらに、PhotoShop の psd 形式や CLIP STUDIO PAINT の標準である clip 形式はいろんなデータが詰め込んであるので 1 ファイル当たり平気で 50 MB くらい持って行かれます。これも結構厳しいところです。 VCS を

    Tomato-360
    Tomato-360 2016/10/27
    これすごいな!
  • Gitの作業を効率化するためにZshでやっている事 - クラウドワークス エンジニアブログ

    dotfilesいじりが趣味の岩下(@ToruIwashita)です。 今回はzshの補完でこんな感じの動きをさせる話です。 はじめに みなさんはタイポに悩まされる事はありませんか?僕はタイピングする度にタイポを繰り返し、やりたい事をやるための入力に手間取ることに悩み、日々ストレスを感じています。 タイポしないとか、やりたい事をサクッとやるためにはどうしたら良いのか。その答えはタイピングをしない事だと思います。 もし自分の頭とPCをつなげて指を動かさずに入力できたなら、タイポのストレスから開放されるはずなので、早くそういう未来が来ることを切に願います。 が、夢見ているだけでは目の前のストレスは消えないわけで。今現在はそういう技術がまだ手元にないし、じゃあ極力タイピングをしないようにしようと、日々改善活動を行っています。 今回はその活動(dotfilesいじり)の中で、gitに関連する操作の

  • 普通のpatchコマンドで取り込めるdiffファイルをgitで作成する - kanonji’s diary

    まとめ $ git diff --no-prefix HEAD~ > thisis.patch $ patch --dry-run -p0 < thisis.patch $ patch -p0 < thisis.patch git diffに--no-prefixをつける事で、普通のpatchで当てられるパッチファイルを出力できます。この例ではHEADの1個前*1からHEAD*2までのパッチです。 普通のpatchコマンドのほうの知識があまり無くて-p0がいまいちよく分からないんですが、git diff --no-prefixで作成したパッチファイルを当てるには必要みたいです。--dry-runは、実際には当てないけど当てた場合の結果を出力します。なので、まずは--dry-runで確認して、問題が無ければ実際にパッチを当てます。 エントリー書いた後に教えてもらった補足 patch -p1の

    普通のpatchコマンドで取り込めるdiffファイルをgitで作成する - kanonji’s diary
    Tomato-360
    Tomato-360 2016/05/16
    パッチを作って当てる方法
  • マンガでわかるGit 第一話「Gitってなあに?」 | マンガでわかるWebデザイン

    次回以降の流れは?(2016/04/11 0時 追記) マンガでわかるGitの構成は、ざっくり下記の構成を考えています。 最初の一歩: Gitとはなんぞや? 第一フェーズ: 1人で使ってみる 第二フェーズ: 複数人で使ってみる 第三フェーズ: 実務上でのハウツー(応用) これは、まだ私が頭の中で考えているだけの仮段階のものですので、細部はみなさんからのコメント・需要を拝見しながら変更していくと思われます。 ちなみに、はてブコメントで要望の多かった「SVNとGitの違い」 → こちらのマンガ化はやってみたいですね。 #マンガでわかるGit 全体の構成(仮)考えるの楽しい♫ Gitってそもそも何?メリットは? ↓ 一人でGit😃 ↓ 複数人でGit😃😃 の流れで考えています。 はじめてコミット、チェックアウトしたときの感動といったら! pic.twitter.com/uyCl1zAxAF

    マンガでわかるGit 第一話「Gitってなあに?」 | マンガでわかるWebデザイン
  • A better git log (Example)

    So, are you tired of this old and bored git log screen? How about this one, instead? It's simple. Just type in: git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit I guess that's a bit too long, eh? Let's just make an alias. Copy and paste the line below on your terminal: git config --global alias.lg "log --color --graph -

    A better git log (Example)
  • レビューしやすいコミット履歴でバグ削減 - Money Forward Developers Blog

    こんにちは。 アグリゲーション開発担当の中川です。 今回は、みんなが大好きな構成管理ツール「Git」について話したいと思います。 私は Git を使い始めてから、バグの発生数が激減しました。 Git を使ったとある手法によってレビューが充実し、バグの少ないコードを書くようになったと考えています。 では、今回はその手法について紹介したいと思います。 ※ 稿は Git 以外の第三世代構成管理ツール(Hg、Bzr など)にも適用するかと思いますが、Git の用語とコマンドを使って紹介していくため Git の基知識が必要となります。ご了承ください。 レビューしやすいコミット履歴と、開発の流れで自然にできるコミット履歴の乖離 以下のようなコミット履歴があるとします。 1. wip: 仕様変更○○を行い始めた 2. wip: 仕様変更○○の続き 3. wip: ちょっと設計を変更、それと過去のバグ

    レビューしやすいコミット履歴でバグ削減 - Money Forward Developers Blog
  • git用のpre-commit gemが便利すぎる - TakiTakeの日記

    まずは $ gem install pre-commit # In your git repo $ pre-commit install これだけで、うっかり残念なコミットをする事故が防げます。 Git フック使ってますか? http://git-scm.com/book/ja/Git-%E3%81%AE%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA-Git-%E3%83%95%E3%83%83%E3%82%AF コミットする前にバリデーションかけて、通らなかったらコミット中止する。コミットメッセージにブランチ名を自動挿入する。など、ルーティンワークをフックに仕込んでおけば、誰も読まないガイドラインページを書く手間が省けますし、強制する事ができて幸せです。 じゃあ、何をフックに設定するかと言うと コードレビューしていると、気にな

    git用のpre-commit gemが便利すぎる - TakiTakeの日記
  • Git で コミットを無かったことにする方法 (git revert の使い方) - akiyoko blog

    Git でコミット(とかマージ)を無かったことにする方法といえば、「git revert」なのですが、使い方にちょっとひとクセ(?)あったのでメモっておきます。 「git revert」は正確には、commit を無かったことにするのではなく、対象の commit の変更を相殺するような差分commitを自動で生成するというものです。 コミットを文字通り無かったことにする(コミットログから特定のコミットだけ抜き出す=履歴が残らないようにする)には、「git reset --hard」「git rebase」「git cherry-pick」「git push -f」などを駆使すればできるのですが、いくつかコミットやマージが重ねられた後にそれをするのは、あまり現実的とは言えませんよね。 そこで、「git revert」の登場です。 実践 例えば、以下のような commit があったとします。

    Git で コミットを無かったことにする方法 (git revert の使い方) - akiyoko blog