歴史改変、してますか? 私は歴史改変が大好きで、毎日 rebase しています。なので割と毎日 git push -f することになっています。 口で -f と言っても、実際には --force-with-lease --force-if-includes をしているので、これらのオプションのご紹介。 この記事は はてなエンジニア Advent Calendar 2022 の 18 日目です。昨日は id:rokoucha さんで 壊れたデータベースとの向きあいかた - rokoucha でした。 qiita.com -f の危険性 ...--F--G--H <-- main という状態で push した後、H をコミットし直したとしよう。 ...--F--G--H' <-- main \ H <-- origin/main このまま H' (main) を origin/main に p
git help help を初めて見た。 #102: Do Developers Really Know How to Use Git Commands? A Large-scale Study Using Stack Overflow – Misreading Chat で Git のサブコマンドの話をしていて、 140個ある!って言っててマジか、と思って git help --all とかに辿り着いたりした。サブコマンドがジャンルごとに紹介されている。 $ git help --all --no-external-commands --no-alias | grep '^[^ ]' See 'git help <command>' to read about a specific subcommand Main Porcelain Commands Ancillary Command
もうそろそろいい加減git subtreeも使いこなせないとまずいな、と思っていたところなので とりあえずわかる範囲で調べてまとめてみた。 git subtree とは何か git subtreeは外部のリポジトリを現在のリポジトリに取り込むための機能です。 リボジトリ in リポジトリとなるとgit submoduleだったり、 npmとかcomposerみたいな依存管理ライブラリみたいなものを連想するかも知れませんが、 subtreeの挙動はちょっと違います。 一般的な依存管理ライブラリや、git submodule では、 特殊なファイルに 取り込み元リポジトリを記載して管理するという、 取り込み元と、取り込み先を明確に区別しての管理を行うのですが、 subtree では、 「取り込み元と取り込み先のコミット履歴を完全に結合する」 という動き方をするみたいです。 使い方 とりあえずフ
developer.1password.com パスワード管理ソフトで有名な 1Password に SSH の鍵管理の機能が追加されていた。 新たにセットアップする機会がなかったのでスルーしていたが、セットアップ機会が訪れたので試してみたところ、思った以上に体験が良かった。 また GitHub に SSH 鍵でコミットの署名・検証を行える機能が追加された。 これらが組み合さって、これまでの鍵管理やコミット署名と比べて手間無くセキュアに出来ることに気づいてきたので紹介してみる。 1Password での SSH 鍵生成/管理 まず、1Password 8 から SSH の鍵を生成 / 管理できるようになった。 blog.1password.com 詳しいやり方は上記のブログやドキュメントを見てもらう方がわかりやすい。 この機能を使った GitHub への鍵の登録イメージはブログにもあるこの
Git scraping: track changes over time by scraping to a Git repository 9th October 2020 Git scraping is the name I’ve given a scraping technique that I’ve been experimenting with for a few years now. It’s really effective, and more people should use it. Update 5th March 2021: I presented a version of this post as a five minute lightning talk at NICAR 2021, which includes a live coding demo of build
Shallow cloneとは Gitには、shallow cloneという便利な機能があります。Shallow cloneを行うことで、最新のコミット履歴のみを取得する代わりに高速にcloneを行うことができます。 古いコミット履歴を取得しないという特性から、これは長い歴史をもつGitリポジトリに対して特に効果があります。 例: ruby/rubyをcloneする例 $ git clone --depth 1 https://github.com/ruby/ruby Cloning into 'ruby'... remote: Enumerating objects: 9894, done. remote: Counting objects: 100% (9894/9894), done. remote: Compressing objects: 100% (8679/8679), do
written on Thursday, July 14, 2022 When you maintain a project, publishing new releases can quickly become a chore, so naturally one tries to automate it as much as possible. One release step which is often automated is updating the changelog. We already have git commit messages, so let's gather all the messages since the last tag and "Voilà!" changelog entries for the new version! There is howeve
# 前置き AWSのSecretをpushしてアメリカから電話が掛かってきてからというもの、GitGuardianからメールが来る度に嫌な汗を掻いている私です。 そんな生活から抜け出すため、 Credentials(秘匿情報)を含んだファイルがないかチェックしてくれるSecretlint と、Gitの特定のコマンドにフックして処理を挟めるGit Hooks を使って、全てのリポジトリでのコミット時にSecretlintを走らせる環境を作っていきます。 なお、私はWindowsユーザーなのでシェルはPowershellで進めていきますが、Unix系のエイリアスを色々追加しているので無意識に使っていたらよしなに脳内変換をお願いします。 Secretlint (opens new window) Git Hooks (opens new window) # 私の環境 git version 2.
まだ一度もコミットしていないファイルを git diff で表示したい場合は、git add の --intent-to-add オプションを使うと、コミットせずとも git diff に表示できます。 $ echo 'Hello' > example.txt $ git add --intent-to-add . $ git diff diff --git a/example.txt b/example.txt new file mode 100644 index 0000000..e965047 --- /dev/null +++ b/example.txt @@ -0,0 +1 @@ +Hello CIでgo generateしてみて差分があるかチェックする仕組みを作りたかったので、addしていないファイルも含めてdiffに出す方法はないかと探してみたところ、 --intent-to
AI & MLLearn about artificial intelligence and machine learning across the GitHub ecosystem and the wider industry. Generative AILearn how to build with generative AI. GitHub CopilotChange how you work with GitHub Copilot. LLMsEverything developers need to know about LLMs. Machine learningMachine learning tips, tricks, and best practices. How AI code generation worksExplore the capabilities and be
uiu です。ハローには創業時に入社し、エンジニアとしてAutoReserveの開発にゼロから関わってきました。現在はバックエンドをメインに担当していますが、領域横断的に開発することを得意としています。 2022年の初めに AutoReserve にあるWebフロントエンドをすべて Vercel に移行しました。 Vercel に移行するのと同時に Turborepo を導入しました。現在、4サービスのWebフロントエンドを monorepo として運用しています。 AutoReserve は、AIが代わりに電話してくれる飲食店向け予約グルメアプリです。iOS / Android アプリ、 Web アプリを提供しています。 また、セルフオーダーシステム AutoReserve Order を提供しており、レストランすべての業務をサポートできるプラットフォームを目指しています。 背景 Aut
緊急新人エンジニア応援企画! ということで自分が 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を使っているとプログラムからGitのメタ情報を取りたい!ってこと、よくありますよね? でも、 git status をgrepしたりしていませんか?? git rev-parse から取れる情報もたくさんあるんですよ! というわけで git rev-parse のちょっと凝った使い方を説明します。 そもそも git rev-parse ってなによ? Pick out and massage parameters とのことです。 ちなみに、Google翻訳によると「選ぶとマッサージパラメータ」って出てきました。 つまり、(与えられたモノが)何なのかを明らかにすることと、(gitの)パラメータを出力することができるやつってことです。(雑) git rev-parse objectのhashが取得できます。
この記事はemacs Advent Calendar 2021 の22日目の記事です。 小ネタで恐縮ですが、diff など表示するときに シンタックスハイライトして表示できるdelta というページャーと、delta を magit から呼び出せるようにする magit-delta というパッケージに感動したので紹介させてください。 delta とは 主には先も記載した通り diff など表示するときに シンタックスハイライトして表示できるツールとなっています。 詳しい機能の説明は下記となっています。 ハイライト以外にも良いなと個人的に思っているのは下記の機能です。 サイドバイサイドで縦に分割してdiff を表示できるオプション(--side-by-side) 'n' や 'N' キーで 差分ごとに移動できるオプション(--navigate) Githubになどにリンクできるオプション (
パッチファイルの形式にはいくつかあるわけだが, git の diff で使われている形式について,ちょっと調べたのでそのメモ. diff 形式 diff コマンドが吐き出す形式は色々ある.主に以下のものがあるらしい [1] : 通常の形式 差分部分だけを表示する, diff のデフォルトの表示形式 コンテキスト形式 差分部分周辺も含めて,どういう風に変わったかが分かるようになっている,表示形式 side by side 形式 2列で差分を表示する形式 スクリプト形式 ed コマンドなどでそのまま実行すれば,差分を適用できる形式 if-then-else 形式 CPP のマクロで,両方を切り替えられるようにした形式.差分部分を #ifdef で囲って出してくれ,指定したマクロ変数を定義すると古いのに切り替えられる. 色々あるけど,パッチを送信する際よく使用されるのは,プレーンテキストでも差分
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く