タグ

gitに関するtk-1124のブックマーク (16)

  • 大きなGitリポジトリをクローンするときの工夫を図解します - DeNA Testing Blog

    こんにちは、SWETでCI/CDチームの前田( @mad_p )です。 SWETではCI/CDチームの一員として、Jenkins運用のサポートや、CI/CD回りのノウハウ蓄積・研究をしています。 はじめに Gitリポジトリをクローンすると、ローカルフォルダにはそのリポジトリの全体がダウンロードされ .git というフォルダに格納されます。ブランチをチェックアウトすると、ブランチ内のファイルがワーキングツリーとして展開されます。この様子を図にするとこのようになります。 この .git とワーキングツリーの使うディスク容量を節約しようというのが今回のお話です。特にJenkinsにおいて、大きめのGitリポジトリをクローンしてくる場合に課題があり、いろいろ工夫してみたので、その結果を紹介します。同じCI/CDチームの加瀬による記事「大規模リポジトリで高速にgit cloneするテクニック」と内容

    大きなGitリポジトリをクローンするときの工夫を図解します - DeNA Testing Blog
    tk-1124
    tk-1124 2021/07/12
  • git gc の仕組みを原理から理解してサイズを 136MB → 7.2MB(95%減)まで削減した時の勉強メモ

    個人用メモです。 「git gcってあんまし容量減らないよなぁ」 と思ったのが動機です。調べたけどパッと腑に落ちる記事がなかったので「自分で git のソースコード見た方がいいな」と急にモチベ発動してグワっと勉強しました。またついでに歴史改変の方法も調べたのですが、公式で既に WARNING が出てるほど非推奨化されてるfilter-branchを使用してる記事が多かったので、2021 年現在で多分一番推奨されてるfilter-repoを使ってやる方法もまとめました。 ちなみに容量減らしても高速化するかというとそこまで単純ではないです。そもそも減らさなくても partial clone で blob オブジェクトを必要最低限に指定して昔の blob をデフォルトで持ってこないようにしたり(--no-checkoutと併用するとより効果有る)、その後当に自分が必要なやつだけ sparse-

    git gc の仕組みを原理から理解してサイズを 136MB → 7.2MB(95%減)まで削減した時の勉強メモ
  • パーシャルクローンとシャロークローンを活用しよう

    Git のリポジトリが大きくなると、新しい開発者がクローンして作業を始めるのが難しくなります。Git は 分散 バージョン管理システムとして設計されています。つまり、リポジトリとのやりとりを管理する中央サーバーに接続しなくても、自分のマシンで作業ができるということです。これが完全に実現できるのは、すべての到達可能なデータがローカルリポジトリにある場合だけです。 もっと良い方法があったらどうでしょうか?Git の全履歴にあるすべてのファイルのすべてのバージョンをダウンロードしなくても、リポジトリで作業を始めることができたらどうでしょうか?Git の パーシャルクローンやシャロークローンという機能は、こういったケースで役立ちます。その一方でこれらの機能にはトレードオフもあります。これらの選択肢は Git の分散という性質によってもたらされる可能性を少なくとも一つは壊してしまうため、こうしたトレ

    パーシャルクローンとシャロークローンを活用しよう
  • git-notesでコミットにメモをつける - アジャイルSEの憂鬱

    2020年に「コミットログは良くならない」というのを悟ったので、現実的な解決案である「git-notesでメモを残す」について記事を書いておきます。 前回の記事 sinsoku.hatenablog.com git-notes 詳細は git notes --help を読んでください。 概要は以下の通りです。 コミットログとは別にメモを残せる コミットはそのままなのでshaは変わらない shaが変わらないのでCIの再実行が起きない 他人のコミットにメモをつけられる 他人に作業を依頼する必要がない メモもリモートにプッシュできる 過去のコミットにメモを残せる 使い方 メモを書く git notes edit <sha> でメモを書くと、git log のときに一緒に表示される。 $ git notes edit d2cdf0b $ git log -1 d2cdf0b commit d2c

    git-notesでコミットにメモをつける - アジャイルSEの憂鬱
    tk-1124
    tk-1124 2021/01/07
  • 開発チームの生産性・健全性を客観的に知るためにリポジトリ履歴から機械的に可視化するツールを作った - Qiita

    はじめに ソフトウェア開発のチームの生産性や健全性というものは、内部の体感的として理解できるものの、外部の人間からは見えにくいものです。こういった情報の非対称性は開発チーム外の人々との関係の中での問題の原因になってきました。 また、複数の開発チームやプロダクトを束ねるEM、CTOや、管理職にとってそれぞれの状況を客観的な数字やグラフで可視化することは、全体的な戦略を考える上でも重要な参考情報になります。ですが、アンケートやプロジェクト管理を増やすほど、どんどんと開発メンバーに負担をかけてしまうことになり、計測のし過ぎによる疲れなども誘発してしまいます。 稿では、gitリポジトリのログ情報から、いくつかのグラフを生成し、チームの状況を可視化するためのツールgilotを作成したので、その目的と意図、そして使い方、注意点を解説します。 アプローチ方法 gilotのアプローチは、git log

    開発チームの生産性・健全性を客観的に知るためにリポジトリ履歴から機械的に可視化するツールを作った - Qiita
  • GitHubにPGP鍵を登録して署名つきcommitを作成してみた | DevelopersIO

    GitではPGP鍵を利用したCommitへの署名ができることを以前から知っていましたが, 下記記事を拝見して簡単に設定できることを知ったのでPGP鍵の生成から設定までやろうと思いました. また, とあるプロジェクトのCode Ownerになったため, リポジトリへのCommitに対して署名をすることで偽装を防げる方が良いのではないかと感じたことにも起因しています. 記事では, 下記4点について実施したことをまとめます. macOSでのPGP鍵の生成 Gitでの署名つきCommitの実行 GitHubへの公開鍵の登録 他のPCへの秘密鍵のインポート macOSでのPGP鍵の生成 まずは必要なツールをインストールします. PGP鍵を生成するためのGnuPGとパスフレーズ入力に利用するPinentryをインストールします. インストールが完了したらGnuPGのバージョンを確認して, 2以降であ

    GitHubにPGP鍵を登録して署名つきcommitを作成してみた | DevelopersIO
  • includeIf を使って git config をプロジェクトごとに読み替える - kakakakakku blog

    GitHubAWS CodeCommit を併用したり,プロジェクトごとに別アカウントを使ったり,リポジトリごとに git config を変える場面もある.今までは個人用 GitHub を global 設定とし,別アカウントはリポジトリごとに git config --local コマンドで設定をしていたけど,最近リポジトリが増えて,設定を忘れる場面もあり,direnv のように自動設定をする方法を探していた. includeIf Git Documentation を読むと,「Includes (include)」と「Conditional includes (includeIf)」の説明があり,なんと includeIf を使うと,設定ファイルを条件付きで読み込めるため,さっそく検証することにした. git-scm.com 検証環境 以下のように,ホームディレクトリ直下に g

    includeIf を使って git config をプロジェクトごとに読み替える - kakakakakku blog
  • Loading...

    Loading...
  • https時代のgitアカウントを使い分ける方法

    セキュリティアナウンス 当記事ではcredential helperを利用した方法を紹介していますが、Gitに脆弱性(CVE-2020-5260)が発見されました。 修正パッチが適用されていない古いGitを使用している環境下では危険ですので、まずGitのバージョンアップグレードをしてください。 2020/04/18時点で修正パッチが適用されているバージョンは以下です。これより古いバージョンを使っている場合は気をつけてください。 2.17.4, 2.18.3, 2.19.4, 2.20.3, 2.21.2, 2.22.3, 2.23.2, 2.24.2, 2.25.3, 2.26.1 時代はhttps https://help.github.com/articles/set-up-git/ GitHubではhttps推奨になっているし… httpsのほうがclone速度はやいし… まとめに書

    https時代のgitアカウントを使い分ける方法
  • draw.io で書いた画面設計書いてみたらストレスフリーになった 〜 続・gitbookで設計書を作成したら最高だった話 - フォトシンス エンジニアブログ

    こんにちは フォトシンスでソフトウェア開発のマネージャーをやっている @ishturky です。 今日のエントリーは、以前書いた 「gitbookで設計書を作成したら最高だった話」の続きです。 akerun.hateblo.jp こんなコメントいただいております。 はい。これはとても悩ましいですね。僕自身もとても悩んでまさに試行錯誤していました。 今回は、「draw.io」というツールを使ったらとても連携しやすかったのでご紹介します。 draw.io about.draw.io どんなツール? ざっくり以下です VisioやCacooなどに代表されるお絵かきツールです ブラウザ上で動きます(Desktop版もあり) Drag and Drop で図を配置して線でつなぎます。フローチャートやワイヤフレームなどなど色んな用途に。 いろんなステンシル(テンプレ)が用意されています(スマホ画面やA

    draw.io で書いた画面設計書いてみたらストレスフリーになった 〜 続・gitbookで設計書を作成したら最高だった話 - フォトシンス エンジニアブログ
  • GitFlowをやめて本番リリースが楽になった話 - Qiita

    背景 サーバーサイド開発のプロジェクトでGitFlow(的な)運用を行っていたが、番リリースの際に困ることがあったのでgitの運用フローを変えて解消したという話。 まず問題の内容から順番に書いているので、結論(新しい運用ルール)だけ知りたい人はこちら git運用フローについては、GitFlow・GitHub Flow・GitLab Flowなどが有名だがどれとも少し違うように思ったのでまとめた。 <2018/06/10追記> 新フローにも名前が欲しいと思っていたが、同じやり方を「GitFeatureFlow」と呼んでいる記事を見つけた。個人的にもしっくり来たのでこれからはこの呼称を使っていこうと思う。 cf. GitFlowは使わない!シンプルな「GitFeatureFlow」を紹介します </追記終わり> 導入プロジェクトの概要 採用するべき運用ルールはプロジェクトの条件にも依ると思う

    GitFlowをやめて本番リリースが楽になった話 - Qiita
  • Gitリポジトリ上でAWSアクセスキーを大公開しないためにAnsible Vaultをフル活用する | 株式会社ヌーラボ(Nulab inc.)

    こんにちは。Backlog のSite Reliability Engineering (SRE) を担当している吉澤です。 AWS アクセスキーを含むコードを GitHub の公開リポジトリにプッシュしてしまい、そのアクセスキーがビットコインの採掘に使われて AWS から高額請求が来た!という話をたまに目にします。今年の2月に検証された方(GitHubAWS キーペアを上げると抜かれるってほんと???試してみよー!)によると、git push から13分で不正利用開始されたらしいです。怖いですね……。 Backlog のソースコードは Backlog の提供する Git リポジトリで管理しています。Backlog の Git にはリポジトリの公開機能はないので、AWS アクセスキーをプッシュしたからといって即座に悪用される可能性は低いです。とはいえ、漏洩時の影響が大きいため、AWS

    Gitリポジトリ上でAWSアクセスキーを大公開しないためにAnsible Vaultをフル活用する | 株式会社ヌーラボ(Nulab inc.)
  • gitleaks - 危険なキーを保存していないか履歴をチェック

    MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました AWSのキーなど万一にも漏洩すると大変なことになる情報をGitHubにプッシュすると、わずか数分で抜き取られるなんて怖い話があります。この話を聞いて、自分の過去のリポジトリは大丈夫なのかと焦った方も多いでしょう。 しかし過去のすべての状態において問題がなかったか確認するのは大変です。そこで使ってみたいのがgitleaksです。 gitleaksの使い方 gitleaksはリポジトリを指定して実行するだけです。例えばデモのリポジトリでは以下のような結果が返ってきます。 $ gitleaks --json https://github.com/zricethezav/gronit Cloning https://github.com/zricethezav/gronit... { "l

    gitleaks - 危険なキーを保存していないか履歴をチェック
  • 図を継続的に管理するためのベストプラクティス - WonderPlanet DEVELOPER BLOG

    こんにちは。サーバエンジニアの桐島です。 今回は、図(フローチャート、シーケンス図など)をチームで継続的に管理するための個人的なベストプラクティスを紹介したいと思います。 図の有用性と、継続的な管理の必要性 図って便利ですよね。 以下の様な図があると、チーム内での認識合わせを正確に素早く行うことができます。 サーバ構成図 アプリ-サーバ間処理のシーケンス図 APIプログラムの複雑なロジックのフロー図 ER図 ただ、プロジェクトのドキュメントに含まれる図がすべてメンテナンスされ、最新の仕様と図がマッチし続けているケースは少ないのではないでしょうか。 図は有用なのですが、管理し続けなければその有用性を失い、いずれ削除される運命にあります。 図の継続的管理への課題 では、図が管理されない原因は何でしょうか。 具体的なケースを幾つか挙げてみます。 再編集できないフォーマットで図が作られている ホワ

    図を継続的に管理するためのベストプラクティス - WonderPlanet DEVELOPER BLOG
  • Git Undo エイリアスを定義する | POSTD

    (注:2017/06/22、いただいたフィードバックを元に翻訳を修正いたしました。) このような経験はありませんか?「ローカルのコミットをし過ぎてしまったことに急に気づいて ローカルコミットを書き直している最中 、rebaseしすぎてしまい、自分が思い描くような履歴になっていなかった」。どうですか? 私はあります。そのような時、「ただ CTRL + Z で開始時に戻れればいいのに……」と思います。もちろん、決してそんなに単純ではありません。 GUI でさえもです。 そんな絶望的な瞬間を経験することがあったので、 git undo コマンドを独自に作成する決心をしました。以下に私のアイデアと、そこに行き着くまでの過程を紹介したいと思います。 Reflog Gitのundo操作を行うために私が最初に目を付けたのは、reflogです。「 reflogとは何だろう? 」と思うかもしれませんね。Gi

    Git Undo エイリアスを定義する | POSTD
    tk-1124
    tk-1124 2016/09/30
  • 欧美亚洲色欲色一欲WWW - 欧美大片欧美激情免费看 - 欧美特黄特色三级视频在线观看

    欧美亚洲色欲色一欲WWW - 欧美大片欧美激情免费看 - 欧美特黄特色三级视频在线观看
  • 1