(この記事はここからの転載です) 課題 日本語の長文をgitで管理していると、ほんのちょっとの変更でもdiffでは行丸ごと変更されたことになり、変更点がよくわからないことがある。 二泊三日で小説を書く過激なイベントNovelJam 2018参加作品である高橋文樹氏の「オートマティック クリミナル」は、GitHubを使って執筆されている。小説では、git diffの欠点がはっきりでる。高橋氏は参加レポートで、こう書いている。 あと、今回得た重要な知見なのですが、Githubではある程度以上テキストが長くなってくると、数文字の調整で全部差分として判定されたりするので、小説には向いてないかなーと思いました。小説は行の移動とかがよく発生するので、GithubじゃなくてGitとの相性かもしれません。 普通にdiffを取る 確かに、普通にdiffをとるとその通り。コマンドラインで「オートマティック ク
はじめに git diff で hunk が自分が追加削除したとおりに出なくてイラッとしたことはありませんか? それを解消するために git 2.9 で --compaction-heuristic というオプションが作られより適切な hunk を表示しようという試みがなされました。当時のリリースノート そしてgit 2.11 からより僕らの意図通りの hunk を表示するための仕組みとして --indent-heuristic というオプションが追加されました。Githubからのリリース記事 追加する方法 git 2.11 ではない方はまずアップグレードしてください。 とりあえず試してみたい場合は git diff --indent-heuristic 常に有効にしたい場合は .gitconfig に以下のオプションを追加します。
so-fancy/diff-so-fancy: Good-lookin' diffs with diff-highlight and more diff-so-fancy diff-so-fancy builds on the good-lookin' output of git contrib's diff-highlight to upgrade your diffs' appearances. ・Output will not be in standard patch format, but will be readable. ・No pesky + or - at line-start, making for easier copy-paste. diff-so-fancy 通常 インストール npm
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は、それぞれ手元のファイルとサーバのファイルとなる。 $
よく使う Git コマンド自分用メモです。 これらのコマンドの組み合わせでなんとか開発はできています。新しいコマンドを覚えたら随時追記。 目次 基本操作 ブランチ操作 tag 操作 stash 操作 変更をやり直す rebase -i diff log リモートブランチを全削除するワンライナー リモートブランチを全部チェックアウトするワンライナー 基本操作 git init Git 管理を開始する。カレントディレクトリに .git が作成される。 git add hoge.txt 対象をステージングエリアに追加。 git status ワークツリーとステージングエリアの状況を表示 git commit -m 'commit message' ステージングエリアの情報をリポジトリに反映。 git rm hoge.txt 対象をワークツリーとステージングエリアから削除。 git mv hoge
Git Advent Calendar / Jun. 28日目の記事です。27日目はつるはしで過去を発掘するでした。 Git リポジトリの外で git diff / git apply あまり知られていないことですが、 git diff と git apply は Git リポジトリの外でも使えます。普通の diff ではできない、バイナリファイルを含む2つのディレクトリの差分を取りたいときなどに重宝します。ちょっと試してみましょう。 $ mkdir dir1 dir2 $ echo foo > dir1/text $ echo FOO > dir2/text $ dd if=/dev/random of=dir1/binary bs=128 count=1 $ dd if=/dev/random of=dir2/binary bs=128 count=1
平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識
いままでなんとなく使ってきたけど、ようやく使い方が分かったような気がするのでメモ。 前提知識 インデックスとワーキングツリーが理解できていること HEAD が何か分かっていること git diff ワーキングツリーとインデックスの差分を表示。 git add した後にさらに修正したけど、そういえばどの時点で git add したのかなー、というときに使う? git add したらすぐにコミットする自分には関係なさそう。 git diff --cached HEAD とインデックスの差分を表示。 git add して、コミットする前に差分を確認したい時に使うんだと思う。 自分は git diff よりもこっちの方をよく使う。 git diff HEAD HEAD とワーキングツリーの差分を表示。 前にコミットした時からどれくらい編集したか確認したい時に使う。 HEAD の部分はコミット(HE
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く