概要 Junio C Hamanoさんに興味を持って調べていると、Linusさんが書いたGitの初版は1244行ということが分かりました。Gitの初版について、軽く行数の確認とビルドチャレンジをして、あまり調べずに動かしながら機能を推測してみました。 はじめに Highlights from Git 2.39 の冒頭で登場するcommit数が一番多い方「Junio C Hamano」さんを知らなかったので調べてみました。 gihyoのインタビュー記事が面白かったです。Junio C HamanoさんはGitのメンテナで、LinusさんからGitのメンテナを引き継いだすごい方だということを知りました。 このgihyoのインタビュー記事の中で「MLで流れてきたGitのコード行数は1244行だった」というところが気になりました。調べてみると、2020年にTwitterでRui Ueyamaさんへ
Git 2.38がリリースされました。 このバージョンから大規模Gitリポジトリの操作を高速化するscalarが同梱されるようになりました。 今回はこのscalarによって、どれぐらいGitの操作が高速化されるのかを簡単に検証します。 結論から言うとgit statusが約43秒かかっていたのが約1秒で操作できるようになります。 Install Git 2.38 Git 2.38からscalarが同梱されましたので、各自の環境にあわせてInstallなりVersionUpなりをしてください。 $ git --version git version 2.38.0 Before 大規模Gitリポジトリとしてchromiumを利用しました。 普通にgit cloneしてきて、git statusを実施すると約37秒かかります。 ❯ time git status On branch main Y
git-rebase--onto-tldr.md git のブランチを別のブランチへ付け替える (git rebase --onto) たまに --onto を使おうと思うと忘れているのでメモ. 基本(普通に rebase) これを %%{init: { 'gitGraph': { 'rotateCommitLabel': false, 'mainBranchName': 'develop' }, 'themeVariables': { 'commitLabelFontSize': '18px' } } }%% gitGraph commit id: "A" commit id: "B" commit id: "C" branch branch1 checkout branch1 commit id: "D" commit id: "E" commit id: "F" checkout d
Gitでよく使用するコマンドが何を行っているかをGIFアニメで解説した記事を紹介します。 Gitのマージ、リベース、リセット、チェリーピック、フェッチ、プル、リフログなど、コマンドを実行した時にブランチはどのように相互作用し、履歴にどのような影響を与えるのか視覚的に学べます。 🌳🚀 CS Visualized: Useful Git Commands by Lydia Hallie 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 はじめに Gitのマージ(fast-forward, no-fast-forward) Gitのリベース(rebase) Gitのリセット(reset, revert) Gitのチェリーピック(cherry-pick) Gitのフェッチ(fetch) Gitのプル(pull) Gitのリフログ(re
バージョン管理システムについておさらい Gitというのはバージョン管理システムで広く世の中に使われています。あのLinuxの大元を作ったLinusさんが2週間で作ったっていうのは有名な話です。 hyoshiok.hatenablog.com だいたい、バージョン管理システム自体が一般の人々にとってはなんじゃらほいですよね。プログラマーが主に使います。プログラムって、どんどん修正していきますよね。で、修正したら機能が追加されたり動きが良くなったりするのですが、たまにとんでもないバグが埋め込まれていたりします。で、aaa.prgというソースコードを作っていて、aaa.prg.20200418とかってファイルを作ったりして古いソースコードファイルのバックアップを取ったりすると、そのうちバックファイルだらけになったり、バックアップを戻したタイミングで戻るべきではないものまで戻ったりして、現場は大混
製品 注目 デベロッパー Product Managers IT プロフェッショナル Business Teams Leadership Teams
この記事のゴール 以下についてざっくり理解することができる(かもしれません)。 commitとはなにか checkoutとはなにか 本編 僕「好きです。付き合ってください!」 帰り道、僕は勇気をふりしぼって先輩にそう伝えた。 先輩はちょっと驚いた顔をした。 そのまま笑って、何かをつぶやく。 ーー僕は、横から突然やってきた暴走トラックに跳ねられたので、何も聞けなかった。 気がつくと、森の中にいた。 僕「ここは一体…?」 薄暗い森の中。 僕「そうか、僕、あの時…」 死んだのだ。 頭に霞がかかったかのようだ。思考がまとまらない。 しかし、僕はここが異世界なのだと、何故か瞬時に分かった。 周りを見渡すと、少しはなれたところに男が立っている。 フラフラとしたおぼつかない足取り。虚ろな瞳。痩けた頬。 明らかに憔悴しきっている。 男は虚空をしばらく見つめていた。 ……そして振り絞るような声で、こうつぶや
去る 6月4日、Microsoft による GitHub 買収が発表されました。過剰に反応するニュースではないものの、この機会に GitHub 以外の Git ホスティングサービスに触れてるのもいい経験になるのではないでしょうか。本稿は、GitHub からの有力な移行先の一つとして GitLab を提案するものです。 GitLab が単なる GitHub のクローンサービスだったのは過去の話です。GitLab は 2014 年の法人化をきっかけに、ここ数年で積極的な機能追加がなされており、他の競合に引けも取らない Git ホスティングサービスに成長しています。 GitLab の変遷 GitLab のスタート GitLab は 2011 年に、現 GitLab 社 CTO の Dmitriy 氏によって開発が始められました。 後に、現 CEO の Sid 氏が開発に加わり、翌年 2012 年
GitLab 10.4では、デプロイ前のDockerイメージに対して静的セキュリティ解析を行うツールや、動的にセキュリティ解析を行うツール、そしてWebブラウザから利用できる統合開発ツールなどが搭載された。 主な新機能として、アプリケーションをDockerコンテナとしてパッケージしたあとで静的セキュリティ解析を行う「Static Application Security Testing (SAST) for Docker Containers」、Webアプリケーションに対して動的なセキュリティテストが可能な「Dynamic Application Security Testing (DAST)」、そしてWebブラウザでコードを編集できるWebIDE機能などが搭載されました。 clairを用いてコンテナの静的解析 GitLabには、コードの静的解析を行う「Code Quality」機能がすで
FOLIOアドベントカレンダー 21日目です。 12月は読み応えのある記事が多いので、わたしからはさくっとしたTipsを。 いま作業してるリポジトリのファイル群から、目当ての文字列を1秒でも早く見つけるための話。 おすすめのコマンド grep だと対象指定が面倒だったり、カレントディレクトリ以下を指定すると巨大なnode_modules以下のファイルも対象になってしまったりするので、git管理下のファイルのみを対象に検索できて高速な git grep がおすすめ。 git grep 検索したい文字列 だけで検索できる。 ~/.bashrc や ~/.zshrcなどに以下のエイリアスを書いておくと、 gg hoge だけでgit管理下のファイルにあるhogeをハイライトつきでリストアップしてくれてめちゃ手軽。 alias gg='git grep' もちろん日本語も gg ほげほげ でいける
git log --graph --pretty=oneline でもいいんだけど、情報として物足りない。 エイリアスの設定によりこんな感じに美しくすることが可能です。 .gitconfigのエイリアスは下記のように設定します。 [alias] lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative lga = log --graph --all --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-com
2017/03/30 追記 新しいバージョン (v2.0) の記事を書きましたのでこちらもご覧ください fivestar.hatenablog.com この記事は PHP Advent Calendar 2014 の8日目の記事です。 コーディング規約が守れない方とお悩みの方も、チームメンバーがなかなか守ってくれないとお悩みの方も、 PHP CS Fixer があればもう安心。PHP CS Fixer が PHP コードをコーディング規約に沿って整えてくれるので、秩序ある PHP ライフが約束されるでしょう。 そんなこんなで PHP Advent Calendar 2014 の 8 日目ですね。みなさんこんにちは、 fivestar こと小川です。いつのまにかクロコスがなくなって Y の人になっちゃいましたね。 昨今は PSR (PHP Standard Recommendation) の
さて変更を反映するか。 $ git pull remote: Counting objects: 74, done. remote: Compressing objects: 100% (37/37), done. remote: Total 60 (delta 26), reused 55 (delta 21) Unpacking objects: 100% (60/60), done. From xxxxxxxxxx xxxxxx..xxxxxx master -> origin/master Updating xxxxxx..xxxxxx error: Your local changes to 'xxxxxxxxxx' would be overwritten by merge. Aborting. Please, commit your changes or stash them
概要 Git・GitHubを利用したシンプルで強力なワークフローであるGitHub Flowを図にまとめました。 GitLabでも利用可能なFlowです。GitLabの場合は Pull Request を Merge Request に読み替えてください。 前提 実際にGitHub Flowを実践したことはありません。(2014/06/12時点) これからチームで導入予定で、メンバーとワークフローを共有するために図を作成しました。 ワークフローの誤りなどご指摘いただけると幸いです。 アクティビティ図をベースに作成してありますが、厳密な記法よりも 相手に伝わればいいかな、という点を重視しています。 基本原則 masterブランチは 常時デプロイ可能 である 機能追加、バグフィックスなどは 説明的な名前のブランチ をmasterから作成する 機能追加の例: add_user_notice (ユ
gitで、リビジョンの比較やコンフリクトの解消をmeldでやるには。 やりかた .gitconfigに以下を追記しておくと、git difftool -dやgit mergetoolでmeldが起動するようになる。 [diff] tool = meld [difftool "meld"] cmd = meld $LOCAL $REMOTE [merge] tool = meld [mergetool "meld"] cmd = meld $LOCAL $BASE $REMOTE --auto-merge どういうこと? [difftool "meld"]に出てくる$LOCALと$REMOTEは、それぞれ変更前と変更後を表している。1つ目のパラメータが左側に表示される。 [mergetool "meld"]の$LOCALと$REMOTEは、それぞれ手元のファイルとサーバのファイルとなる。 $
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く