Bye Bye Moore

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

Git

Git rebase

Git

いまかいてます…… 参考もと git-scm.com

git shortlogでコミットした人とコミットメモだけみる

Git

gitにはlogサブコマンドがあり、こいつを使うと過去の履歴が確認できます。単に名前とコミット者を知りたいときはshortlogというサブコマンドもあります。 実際のところ ionoPiのリポジトリで実行すると、こんなかんじ $ git shortlog Giampiero (17): init …

git-rev-parseで特定タグのコミットIDを得る

Git

特定の位置まで戻りたいけど、コミットIDを調べるのが面倒なときgit-rev-parseが使えます 実際のところ タグHOGEのコミットIDを得るには以下のように $ git rev-parse HOGE 参考もと git-scm.com

手元のgit tagをpushする

Git

実際のところ リモート先originにtag"hoge"をおくる $ git push origin v1.5 リモート先のoriginに手元のtagを全部おくる $ git push origin --tags リモートからもってくる git pullならデフォでついてます。 何らかの事情でつけたくないなら、"--no-tag"オ…

Git tagである程度意味合いのある実装単位に目印をつける

Git

Git tagはブランチを切るほどでもないけど目印をつけたいとき、 あるいはmasterでバージョンが更新されたときに目印をつける事ができるコマンドです。 実際のところ タグを追加する場合には以下のように。 コメントは任意です。 $ git tag -a #{タグ名} -m '…

git diff --name-onlyで変わったファイ名だけ表示

Git

報告書とか書くときに、前回から何のファイルが変わったかだけ知りたいことありますよね。 そういうときは、git diffの"--name-only"オプションがつかえます。 実際のところ $ git diff --name-only #{commit_A} #{commit_B} 何したかも知りたいとき マージ…

git diff自体はgitリポジトリの中にいなくても使える

Git

たまたまタイポして気づいたのですが……git diffはgitリポジトリの中にいなくても使えます。 ローカルで差分つくって、素ファイルを".bak"とかしておけば手軽にgit基準の差分ファイルが作れますね。 $ git diff 001.txt 002.txt diff --git a/001.txt b/002.t…

git ls-filesの"-m"オプションで変更されたファイル名だけみる

Git

$ git diff --name-status | cut -f2は $ git ls-files -mとして読み替える事ができます 参考もと Git - git-ls-files Documentation

Gitで変更したくないファイルが発生したとき

Git

増える行が一行で消えるのは大量とか、そういう場合は ちまちまマージするより一行コマンドで挿入したほうが楽ってことありますよね。 差し戻すには、HEADでcheckoutします $ git checkout HEAD Hoge/Hoge.csproj

git diff等々用に特定コミットの短いハッシュ値がほしい場合

今いるブランチの後ろから二番目にあるハッシュさえあらばいい 7文字なので処理も早い 固定ファイルとしておくには、ポータビリティが宜しくない $ git log --one-lineでお目当てを探したあと、後ろから何番目か抑えておきます。 今回は二番目でした $ git l…

cpコマンドでディレクトリ構造をおくる

cpコマンドでディレクトリ構造を維持してコピーしたいなら"--parents"オプションです。 実際のところ Gitの変更ファイル群を追加->更新順でソートしてディレクトリ構造ごとファイル名を追加する場合 $ git diff --name-status {{COMMIT_ID}} | sort | cut -f…

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 …