Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

Git

Git for Windowsの日本語化けを

Git for Windowsの日本語化けを 実際のところ $ git diff --name-status {{COMMITID}}とやったところ 一部のファイルがこんな感じに。 日本語だからですかね。 _\111\222\333...この場合、"quotepath"オプションを消してやると、うまくいきます。 $ git conf…

Git diffでコミットIDとブランチ間の差分をとる

Git

shuzo-kino.hateblo.jp の派生です。コミットIDとブランチ間 $ git diff 12345...abcdef:hoge.txt master:hoge.txt

Git diffでブランチ間の差分をとる その2: {{branchname}}:{{filename}}記法

Git

shuzo-kino.hateblo.jp の別版。 " {{branchname}}:{{filename}}"な感じでも差分をチェックできます。 公式のドキュメントを漁ってみましたが、どういうわけか見つかりません。 実際のところ gobotのリポジトリを例にしてみます。 .travis.ymlの差分を見たい…

git logのbefore/afterオプションで期間を指定する

Git

特定日付の差分を見たい場合は、git diffの"HEAD@DATE"記法が使えます。 shuzo-kino.hateblo.jp単体のタグの記事は shuzo-kino.hateblo.jp "before"オプションと"after"オプションを使えば、特定期間中のログを確認可能です。 実際のところ 2017年1月1日~3月…

gitリポジトリから導入するタイプのionic pluginで特定のタグから引っ張りたい場合

Git

gitリポジトリから導入するタイプのionic pluginで特定のタグから引っ張りたい場合 まともに管理されていれば、タグでバージョンがわかるはずです。 実際のところ 何かとお騒がせのSalesforceMobileSDK-CordovaPluginのうち、 執筆時点でメジャーバージョン…

git checkoutで特定のコミットまで戻る/特定ブランチの先頭まで戻る

Git

コミットID XXXYYYZZZまで戻りたい場合 $ git checkout XXXYYYZZZYOURBRUCHの先頭まで戻りたい場合。 先程のコミットID指定のやつで同じブランチに潜っていたとしても大丈夫です。 $ git checkout YOURBRUCH 参考もと "git checkout --help"

Git で特定のコミットやtagの状態だけcloneしたい……ときでも素直に全部やっといたほうが良い

Git

Git で特定のコミットやtagの状態だけcloneしたいなんてのは、割りと良くある話。 探すとコマンドが出て来るっぽいですが、その後の不整合を考えると 実際のところ 執筆時点において、Salesforce mobile SDKの最新版は5.0です。 が、参考にしているサンプル…

GitでN個前からの変更差分を調べる

Git

一寸前の記事でN日前の差分を取る奴をやりました。 shuzo-kino.hateblo.jp では、その日にやった……というか数分前にコミットした差分はどうするんでしょうか? 実際のところ N日前と同様HEADに細工をします。 たとえば、四個前のdiffは以下のように"^"を4個…

誤ってコミットしてしまったら、--amendで直す事ができる

Git

履歴頼みで雑にコマンドを叩いていると、時折commit commentが誤爆する事があります。 内容は問題ないのにgit resetするのはどうも……。 そんなときは--amendをしたげると、コメントの変更が可能です。 こんな事も知らずにgit使ってたのか……という話ですが。 …

リモートブランチにあるリポジトリを一発で引っ張ってくる

Git

git checkoutは-bオプションを付けてあげると新しいブランチを作って、かつ移動する事ができます。 で、第二引数に導入もとを明記すると……一本のコマンドで新ブランチ作成とマージが一本で出来てしまいます。 実際のところ いままでは、以下のような泥臭いの…

Git diffでブランチ間の差分をとる

Git

Git diffでは、コミット前からの差分だけでなく、ブランチ間のdiffをとる事もできます。 実際のところ ローカルの"fix/22"というブランチとGithub上のorigin/masterブランチについて、 www/templates/home/ディレクトリでの差分を確認したい場合は以下のよう…

git checkout はファイルだけ引っ張ってくる事もできる

Git

git checkout はファイルだけ引っ張ってくる事もできます 実際のところ 例えば、環境再構築でふっ飛ばしてしまったビルドに必要なファイルを安全なコミットxxxxから回収するスクリプトは以下の通り $ git checkout xxxx PATH/TO/FILE

git cloneするとき、最新の部分だけもらってくる

Git

案外知られていないようなのでメモ。Gitリポジトリから、最新のコミット結果だけ欲しい場合、 以下のようにやればOKです。 $ git clone --depth 1 hogehoge帯域が狭い場合など、少しでも高速化したい場合何かにはオススメです。

Gitでコミット数を知るワンライナー

Gitでコミットした量を知るワンライナーです。 git logは各種ログがでてきますが、awkでこれの”Date”分を抽出し、"uniq -c"で出てきた個数を数えると……コミット回数をリストアップできます。 $ git log | awk '/Date/{print " : " $4 " " $3 " " $6}' | uniq…

fileter-branchで誤ってaddしてしまったファイルを「最初から追跡していなかったことにする」

Git

fileter-branchはgitリポジトリにて誤ってaddしてしまったファイルを「最初から追跡していなかったことにする」大技です 相当に過激な技なので使い所を誤ると酷い目にあう危険性大です 実際のところ $ git filter-branch --tree-filter 'rm -f passwords.txt…

git blameで何処の誰が何時変更したか知る

Git

git blameは、どこの誰が、いつそのコミットをイジったか知るためのコマンドです。 git logを延々と追跡するより経済的である事もあります。 実際のところ そのまま 各行毎に、その行をイジった最新の人物と時間、コミットIDが表示されます。 $ git blame fi…

Git diffで特定の日付からの変更を確認したい場合

Git

Git diffで特定の日付からの変更を確認したい場合、以下の記法をつかえばいけます。 実際のところ $ git diff HEAD 'HEAD@{6 month ago}'他にも、特定の日付、時間で検索することも可能です。 $ git diff HEAD 'HEAD@{2015-06-01}' // 同じ意味 $ git diff H…

GitのコミットID(?)が長くてやってられない場合、"--abbrev-commit"をつけると短くできる

Git

GitのコミットID(?)が長くてやってられない場合、"--abbrev-commit"をつけると短くできます。 実際のところ $ git log --abbrev-commit --pretty=oneline ca82a6d changed the version number 085bb3b removed unnecessary test code a11bef0 first commit普…

Git diffで特定のコミットから変更されたファイルを見たい場合"--name-status"でイケる

Git

とある地点からdiffをとると、死ぬほど量があって見るのも大変だったりします。 あるいは、単に変更されたファイル名だけ知りたい場合とか。 そんな時に重宝するのが、”--name-status”オプションです。 実際のところ $ git diff —name-status #{COMMIT_ID}M …

Gitで管理したディレクトリをアーカイブ化する

Git

Gitで管理したディレクトリをアーカイブ化する方法です。 一旦成果物を出さないといけない場合なんかは、これで楽ができます。 実際のところ RailsプロジェクトのHEADをアーカイブする場合を考えます。まず、"/.gitattriubte"にて、除外したいファイル・ディ…

Gitの用語がよく分からない時はgitglossaryを参照してみる

Git

gitglossaryはGitユーザマニュアルの一部で、Gitの用語を解説する資料です。Branchとは、HEADとは、Parentとは、と曖昧なまま使い続けかねない用語について 公式の言葉で親切丁寧に解説してくれています。また、中には公式で活用しているものと思われるジャ…

Git-tagを日付指定して打つ

Git

Git-tagは日付指定して打つ事もできます。 用法としては Git以外*1で管理されていたプロジェクトをインポートしたがtagが必要になった エラー対応で「ここまでは動いている」事が明確な場所についてtagをうつ といった用法が考えられます。 実際のところ 特…

git-tagにコメントをつける

Git

git-tagにはコメントをつける事ができます。ルール上、バージョン名でタグつけないといけないけど後で何やってるか確認したいという時は割りかし便利です。 $ git tag -m "update front views" v2.0.0 参考もと man git-tag

git-cherry-pickというコマンドについて

Git

git cherry pickは別ブランチの差分を摘んで頂くコマンドです 実際のところ $ git cherry-pick v2.6.14..private2.6.14これは、以下のコマンドに相当します。 $ git format-patch -k -m --stdout v2.6.14..private2.6.14 | git am -3 -k 以下、増強中 参考も…

git format-patchで外に出す用のパッチを生成する

Git

git format-patchは外に出す用のパッチを生成するコマンドです。 過去N回分のパッチをつくる "-3"オプションをつけると最新三個分のパッチを吐き出します。 末尾にファイル名なりディレクトリ名なりを入れれば、 その範囲が更新された範囲が更新されたものだ…

git-grepはブランチやタグ、コミットIDを指定できる

Git

以前、Git-grepについては取り上げましたが……shuzo-kino.hateblo.jp最後のトコにブランチやタグ、コミットIDをつけると、その範囲だけgrepしてくれるという便利機能も備えています 実際のところ タグ $ git grep "foga" "tagtest" tagtest:sample.txt:foga …

git-ls-remoteで他の場所にあるgitリポジトリのタグやブランチをみる

Git

git-ls-remoteを使うと、clone先にリポジトリにあるブランチやtagを確認できます。 実際のところ とにかく全部の情報を欲しい時はオプションなし $git ls-remote -t https://github.com/rails/rails.gitただし、閉じたプルリクやら何やら色々入ってくるので…

Git logで過去3日、あるいは指定日以降のコミットをみる

Git

$ git log --since='3 days ago'since以外にも、それ以前のコミットをみるuntilなんてのもあります。 --since=, --after= Show commits more recent than a specific date. --until=, --before= Show commits older than a specific date. なお、ここでのdat…

git diffと色々なオプション

Git

git diffは差分を出すコマンドです。 実際のところ 特定のファイルについて特定コミットからの差分を得る $ git diff a37f... sample.txt diff --git a/sample.txt b/sample.txt index 76e579a... 100644 --- a/sample.txt +++ b/sample.txt @@ -1,2 +1,2 @@…

Git tagを使おう

Git

Gitのtagは、その名の通り最新のコミットについてタグ付けする機能です。 あるポイントから 実際のところ タグ付け そのまんまです。 2バイト文字も使えるっぽいですが、なるだけ英数字のほうがいいでしょう $ git tag "tagtest" tag以前のコミットをみる gi…