マークアップエンジニアとかWEBディレクターとかをやってる僕が、自分が詰まって、解決したことをここに残しておきますよ。

ソースツリー(sourcetree)でプッシュ済みのコミットをなかったことにする

最近2回ほどやる必要が出てきたのでメモ。

クライアントのGITに接続して仕事をしていて、修正を反映してコミット&プッシュしたら
お客さんから「今のコミット取り消してください!」って言われた時。

ひー!GITってどんな修正ものこっちゃってコミットをもとにもどしてもその形跡が残っちゃうじゃんよー!どうしたらいいだよ!とパニックなるよね。

全部消してコミット履歴からも消す方法がある。
git resetというやつ。

ソースツリーで言うと「このコミットまでmasterを元に戻す」というやつ。(2019年4月時点)

ちょっと手順がいくつかあるので説明するよ。

まずSourcetreeをひらいて、操作したいリポジトリのウィンドウをひらく。

20190416_1

コミット履歴一覧の中の上ふたつをけして3つめのところが最新状態になるようにしたい。
完全に上2つはなかったことにしたい。



①ここまで戻したいというコミットを右クリックして「このコミットまでmasterを元に戻す」をクリック

上の図でいうと上から3番目を最新状態にしたいので、3番目の矢印ついてるところを右クリックして「このコミットまでmasterを元に戻す」をクリック
(これがgit resetというやつ)
スクリーンショット 2019-04-16 10.22.38



②モードはHardにしちゃう(完全に消す)そしてOKをクリック

なんか聞いてくるので、モードをHardにしてOKを押す。
※Hardにすると修正作業も全部もとに戻るので作業を残しておきたいときはいったん別のフォルダに該当ファイルを逃しておくなどしてね。


20190416_3


するといったんそこまで最新コミットは戻るものの、まだなんか履歴上には自分がプッシュしたコミットが残ってる状態になる。

この時点では、まだプルするとやっぱり自分がやった作業が最新になっちゃう。

まだ道半ば



③環境設定で「強制プッシュを許可する」にチェックをいれる


Sourcetreeの環境設定をひらいて、
全般>高度な設定 をクリックすると出てくる、

「強制プッシュを許可する」というやつにチェックをいれる


スクリーンショット 2019-04-16 10.29.02

※リポジトリの設定じゃなくて、ソースツリーそのものの環境設定だよ。



④勇気を出して強制プッシュをやる!


3までの時点では、プッシュボタンに数字もついていない状態だけど、プッシュを果敢に押す。
するといつものプッシュ確認ウィンドウが出てくるんだけど、そのウィンドウで、「強制プッシュ」にチェックをいれてからOKをおす

20190416_5

なんか怖そうな言葉だけどここまできたら、勇気、、勇気を出すしかない・・・!





完了!!!!


ああらためてコミット履歴をみてみて、自分がやったコミットが消えていて、修正作業をやりはじめた段階まで戻っていれば成功!


ふぅやれやれ

slickでasNavForでサムネイルを設定したがスライダーが動いている途中に次のスライダーをクリックしても効かない

便利なslick

asNavForというオプションをつかえば、スライダーと連動するサムネイルも作れるよね。

ただ困ったことがあって、たとえば4秒でスライダーが切り替わるように設定している場合、その4秒間の間に別のサムネイルをクリックしても動いてくれないことがある。

お客さんがサムネを連打したりすると「なんかちゃんと動いてません」という修正指示がくる。

slick asNavFor moving bugとかで検索したけど出なくて、よくやく自力で解決。

なんとオプションがありました。

waitForAnimate:true

このwaitForAnimateというのはアニメーションしてある間は他の操作をうけつけずに待機する、という機能で、デフォルトではtrueになっている。

これのおかげで遷移中にサムネイルをクリックしたり矢印(arrows)をクリックしたりしてもうまく動かなかったというわけだった。

この機能はもちろんあっていいんだけど、デフォルトはfalseにしておかないと不便だよね。まったく。


というわけでオプションはこんな感じになったよ。


$('.slider').slick({
asNavFor: '.slider-nav',
infinite: true,
autoplay: true,
autoplaySpeed: 4000,
dots:true,
arrows:true,
pauseOnHover: false,
fade:true,
waitForAnimate:false,
speed: 1000
})

$(".slider-nav").slick({
asNavFor: '.slider',
slidesToShow: 5,
waitForAnimate:false,
focusOnSelect: true
});



codekitの自分が触ってるプロジェクト以外のファイル更新で自動リロードがかかるのを防ぐ

codekit使ってます。

codekitの一番いいのが自動リロード機能。
htmlを更新した時に自動でブラウザをリロードしてくれる。cssを更新したときには、ブラウザをリロードせずにcssだけをヌルっと変更してくれるので、ページの途中を作ってる時や、jsでひらいたメニュー内を作ってるときも大活躍する。

その自動リロードで悩ましいことが1つあった。

うちの会社で複数の人間がcodekitをつかってそれぞれの案件をコーディングしてるとき、自分が作業中のファイルを更新してないのに、dropbox内の別のプロジェクトを誰かがいじっていると彼のいじったファイルが更新されたことでこっちまでオートリロードかかっちゃうことがたびたびあって。

cssをちょこちょこいじってるのに勝手にリロードかかってページの上にぶっとばされるのは非常にストレスなので、どうにかなんねぇのかな、と思ってたら、

普通にどうにかなるやつだった。

codekitのプロジェクト一覧をひらくと、ズラッと並んでるプロジェクトの右側にチェックボックスがある。
自分が触ってないプロジェクトに関してはこれをはずしてdisableにしておくだけ。

こんな簡単なことなら、さっさと調べたほうがよかったね。


記事検索


手ぶらで通話 - bluetoothヘッドセット

1時間1円で暖かい。電気毛布。

夏のPC仕事のおともに冷えピタ。クールヘッドで脳のスピードがあがります。

お仕事のご依頼・お問い合わせはこちら

コーディングのお仕事が得意です。

info(あっと)tacshock.com
タグクラウド
QRコード
QRコード
  • ライブドアブログ