かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

git

Git fast-forward な状態にして update branch で master を取り込んだ commit を残さずに済むための git rebase

`$ git rebase ` で現在のブランチを親ブランチの先頭 (HEAD) から生えている状態にすれば fast-forward な merge ができるようになる。 GitHub の様なリモートリポジトリの場合は `$ git rebase origin/master` とすればOK

Git 空コミットしたい

最初のコミットが rebase しづらいから最初のコミットを空コミットにしたかったり、CI 回すテストしたいから空コミットで push したいような時のアレ。 --allow-empty オプションを使う $ git commit --allow-empty -m :sparkles: (完) ノンプログラマーなMa…

Git 削除されたファイルを探したい

Railsのプロジェクトでrakeタスクが作成されてproductionに反映したからタスク削除済み。local環境に反映してなくて削除されたファイル探したいという事が頻繁にありGitで削除されたコミットを見つけてくる必要があったのでやりかたのメモ 削除されたファイ…

GitHub PR のコミット順がローカルの log と違う件

git rebase で --fixup や --squash したり、コミット順を入れ替えたりしたブランチで PR を出すと、PR内や Commits タグで表示されるコミットの並び順がローカルのリポジトリで git log --oneline で表示した順番と違っていることがありました。 GitHub の …

Git ブランチ名を変えたい

git

ブランチ名が合ってないとか、タイポってるとかでブランチ名を変更したい時 今の作業ブランチ名を変更 $ git branch -m <new_branch_name> ブランチ名を変更 作業ブランチではない別のブランチ名を変更する場合は 対象ブランチ 新しいブランチ名 で指定する $ git branch -m <old_branch_name> <new_branch_name></new_branch_name></old_branch_name></new_branch_name>…

git 設定(config)内容を確認したい。

git

お仕事のリポジトリは社用の名前とメールアドレスにしてたかな?と、ふと思いgit configに設定した内容ってどうやって確認するんだったっけ?と忘れてたので備忘録 git config --list --listオプションで設定内容を確認できる。 ショートコマンドは-l $ git …

git コミットログを綺麗にしたい。fixupとsquash

git

チーム開発をしているプロダクトで タイポを修正しただけとか、コミットログが本当にただの履歴になっているままPRをだしたりしてmasterにマージされてしまうとmasterブラントが本質ではないコミットというノイズが混ざり、後から遡って見づらくなったりして…

Git ファイル名の大文字・小文字の変更が感知されないにハマる

git

Macのローカル環境だと画像のsrcで小文字でファイル名を指定していて、実際のファイルが大文字になってても表示されちゃったりするので、 うっかりPhotoshopとかでファイル名大文字にしてて大文字のまま画像書き出してコミットしちゃって、本番サーバーでpul…

Mac OSX High Sierra 開発環境セットアップのメモ (1) git homebrew ssh

新しいMacちゃんの開発環境とかのセットアップのメモ Finder 不可視ファイルの表示 macOS Sierraからはターミナルでコマンドを打ち込まなくてもcommand+shift+.ショートカットをFinderで実行すれば不可視ファイルの表示/非表示が切り替えられるようです macO…

Git 過去の特定のコミット位置からブランチを切りたい

git

git checkout -b で特定のコミット位置からブランチを切ることができる!(∩´∀`)∩わーい

Git log 指定日からの作業内容をテキストファイルに出力したい

git

日報とか週報とかの提出を求められる時、いちいちテキストを書くのがメンドーなのでgit logをテキストファイルとして出力したいと思いました。 1. 今日とか1週間とかの git log をいい感じにして表示する 1週間分の自分のコミットを [YYYY-MM-DD] ハッシュ: …

Git 変更のあるファイルの一部だけをコミットしたい。

git

ファイルを色々変更してしまったけど、コミットは別にしたいという時はgit add -p を使うと、変更の塊(Hunk)ごとにステージにaddすることができるので便利!

Git Submoduleのディレクトリを変更したい

サブモジュールのディレクトリを変更するのにハマったのでメモ。 EX 環境: git version 2.12.2 サブモジュールの追加 $ git submodule add git@my_module.git 追加した my_module を vendor/my_module に移動させたい。 1. ディレクトリを変更する方法 .gitm…

Git 除外したディレクトリ内の特定のフォルダをgit管理したい。

git

.gitignore /var |-/log |-.gitkeep 上記のような構成でvarディレクトリ内のファイルはgit管理から除外したいけどlogディレクトリは空フォルダでgit管理下に置きたいような場合 /var/* !.gitkeep 上記のように単に!.gitkeepとするだけではlogフォルダ自体が…

GitHub 特定のPRをForkしたローカルリポジトリに取ってきたい

ForkしているリポジトリにFork元のリポジトリに出されている特定のpull request(以下: PR)を取り込みたいという状況があったのでメモ。 例 元のリポジトリ: http://github.com/example/project 取り込みたいPR: http://github.com/example/project/pull/298 …

git ちょっと前のコミットで間違ってファイルをコミットしてたので取り消したい

git

プロジェクトの初期の段階で構造をガラッと代えたりして、ちょっと経ってから間違ってコミットしたくないファイルをコミットしちゃってた事に気づいたりして、このファイルコミットしてないことにしたい...とか結構やらかしてしまうタイプです。 不要なファ…

git リモートのブランチを削除する

git

お仕事でエンジニアしてないと本当にどんどん忘れて言っててヤバイって感じてる今日このごろな訳です。 マージしたブランチの消し忘れとか不要なブランチが残ってると見通しが悪くなるのでリモートリポジトリのブランチは定期的に整理したい訳です。で、リモ…

git cherry-pickした時に自動でコミットさせたくない時のアレ

git

しばらく使ってないと直ぐ忘れるのです。 gitでcherry-pickすると通常は元のコミットメーッセージで自動的にコミットが作成されます。何個かcherry-pickで変更だけ取ってきて、まとめてコミットしたいとかのときは、自動でコミットさせたくない時は次のオプ…

Git 別のリポジトリを履歴を残したまま取り込みたい

git

Gitで別々に作ってたリポジトリをコミットログを残したまま1つにしてしまいたい時のめも。 例えばkankore_repoとkuchikukan_repoという2つのリポジトリが別々にあったとします。 これらを別々のリポジトリで管理するのが大変になってきたのでkankore_repo内…

GitHub Forkしたブランチでフォーク元の差分を取り込む

GitHub上にあったhttp://github.com/hibiki/mybranchをフォークしてkikiki/mybranchを作ったとします。フォーク元のhibiki/mybranchが更新されたのでその差分をフォークしたブランチにも取り込みたい時の手順です。 1. local環境でforkしたブランチに移動 $ …

Git submoduleの元のパス(url)を変えたい。

使いたいモジュールがgiyHubとかにあればgitsubmoduleでプロジェクトに取り込むことが多いのですが、プロジェクトによっては取り込んだモジュールを少しカスタマイズしたいとかって事が結構あります。 そんな時大元のリポジトリをForkしてカスタマイズしたも…

Git 空ディレクトリだけgitで管理したい。

git

例えばtmpファイルを置くディレクトリだけgit管理下に置きたいなど 空ディレクトリはgit管理したいが、中にあるファイルはgit管理したくないような場合は、 1. 管理したいディレクトリの中に.gitkeepファイルを作成 $ touch /tmp/.gitkeep 2. .gitignoreでtm…

GitHubに間違ってpushしたcommitを消す。

リモートのpushを1つだけ戻したい時 $ git push -f origin HEAD^:ブランチ名 localのブランチを修正してGitHub上に反映する時 $ git rebase -i HEAD^ 修正したいコミットが3つ前ならHEAD~3、2つ前ならHEAD~2などを指定 エディタが立ち上がるので、修正したい…

gitで新規ファイルを消すTips

git

アプリの開発とかをしていると、アプリで自動でファイルを作ったりする事があると思います。 ちゃんとしてる所は前もって.gitignoreとかに記述してgitの管理外にしていると思いますが、 まぁそうじゃない所も多いかと。特にそのアプリの開発者じゃないと、こ…