ごらくらいふ

プログラミングしたりゲームしたり

Git

gitが追跡していないファイル(untracked files)を消す方法は、ちゃんとgitが用意している。(git clean)

git help読んでないマンが露呈していた!! 追跡していないファイルの削除には git clean コマンドを使用するとよい。 # dry-run。対象ファイルを確認できる。 git clean -n # 実施。 git clean -f # 追跡していないディレクトリも対象とする。 git clean -n…

Gitでuntracked filesの一覧を出したあと削除するとき、ヒストリ展開を使わなくてもxargsで十分削除できた

xargsうまく使えないマンが露呈している。 結論 # 一覧から消したいものだけgrepで絞る。 git status --untracked-files | grep '*.foo' # コマンド履歴から直前のコマンドを持ってきて、xargsを加えて消す。 git status --untracked-files | grep '*.foo' |…

Gitでuntracked filesの一覧を出したあと削除するとき、ヒストリ展開を使えば楽だった

git resetでちょっと巻き戻したときとか、非追跡なファイルの削除にはいつも手間取っていた。 まずコマンドで一覧を出して、絞って、同じコマンドのあたまに rm をつけて。 手作業でめんどうなことこの上ない。でもシェルは強力なツールなのでしれっと解決し…

現在のbranchを(branch nameを書かずに)リモートにPushしたい

結論 git push -u origin $(git branch --contains | cut -d' ' -f2) git branch --contains=[ref]はrefの示すcommitを含むbranchを列挙する。 特に指定しなかった場合、HEADを指定したものとする。 branchをチェックアウトしている前提なので、cutコマンド…

gitのコミットハッシュを見て、処理を続行するか判断する

結論 git rev-parseでコミットハッシュを取得できる。 たとえば、リモートで変更があるかどうかによって、処理を分岐させることができる。 git remote # origin # upstream git fetch --all --prune if [ $(git rev-parse master) = $(git rev-parse upstrea…

CentOS7に`tig`をインストールした

(追記:2017-09-19 19:04)なんか変だなと思ったらCentOS6じゃなくて7だった。はやくdnfの世界に行かないと永遠に混乱し続けることになりそう。 Windowsの手元でCentOSのローカルマシンよく立ち上げてて、「ここにもtigが欲しいなー」と思ったのが始まり。 ち…