GIT

マークアップエンジニアとか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

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





完了!!!!


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


ふぅやれやれ

GitLabでsshでクローンしてくるときに公開鍵が必要

最近仕事でGit使うこと増えてきた。
社内でというよりは、お客さんとのデータやりとりで。 


あるお客さんはGitLabというサービスを使っていて、
招待したもらったあと素直にgit用のパス(URL)をsourcetreeに貼り付けてクローンしようとしたら、エラーになった。

というか、「これはGitのurlではありません」みたいに出た。

あれれってなるよね。
sshじゃなくてhttpsにしてみるとパスワードを求められて、gitlabのパスワードをいれてもまったく解決しない。


どうやら、GitLab(に限らず?)でsshでクローンしてくるには、公開鍵を登録しないといけないのだね。


公開鍵の作り方は、
http://webkaru.net/linux/mac-ssh-login-public-key/

あたりを参考に。

 
すでにローカルの.sshディレクトリに公開鍵できてるわーっていうときは、
id_rsa.pub とかいうファイルが公開鍵なので
エディターで開いて、中身の1行

---------------
ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
---------------
みたいなやつね。


この1行をGitLabの管理画面の鍵設定画面に登録する。

ブラウザでログインして、
左のメニューの人のアイコンをクリックした後、
33


 
左のメニューの鍵のアイコンをクリック
46


Add ssh keyをクリックして、さっきの1行をコピーして適当にtitleつけて完成。


これでsourcetreeでsshでクローンできるようになった!

 
記事検索

リモキュー

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

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

https://twitter.com/tacshock
タグクラウド
QRコード
QRコード
  • ライブドアブログ