日: 2018年7月24日

  • gitで間違えたブランチに書き込んだ際の対処

    gitで間違えたブランチに書き込んだ際の対処

     

    gitで間違えたブランチに書き込んだ

    一度退避させた後、ブランチを切り替えて、退避した変更を引き継ぐというやり方。しょっちゅう使っているコマンドの一つ

    今回はmasterブランチに書き込んだとする

    変更点を退避する

    git stashコマンドを使うと、変更点のみ退避することが可能

    $ git stash
    Saved working directory and index state WIP on master: 1169a810 Merge branch 'route53_20180724_120035' into 'master'
    $ 

     

    この時点でgit statusを実行すると変更点がなくなる。
    書き込んだmasterブランチはクリアーになる

    $ git status
    On branch master
    Your branch is up-to-date with 'origin/master'.
    
    nothing to commit, working tree clean
    $

    新ブランチを作成

    本来作業したかったブランチを作成する
    今回はCloudWatchAlarmというブランチとする
    ここではcheckout -bオプションで作成と同時にgit branchを行う

    $ git checkout -b CloudWatchAlarm
    Switched to a new branch 'CloudWatchAlarm'
    $ 

    当然この時点ではgit statusを実施しても変更はない

    $ git status
    On branch CloudWatchAlarm
    nothing to commit, working tree clean
    $

    ブランチは存在している

    $ git branch
    * CloudWatchAlarm
      master
    $ 

    新ブランチに変更点を取り入れる

    git stash popコマンドで新ブランチに変更点を取り入れる

    $ git stash pop
    On branch CloudWatchAlarm
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory)
    
        modified:   CloudWatchAlarm.sh
    
    no changes added to commit (use "git add" and/or "git commit -a")
    Dropped refs/stash@{0} (d081148067aad39eb60500c5fbb2a32a4c6c2566)
    $ 
    

    まとめ

    # 一時退避
    git stash
    
    # チェックアウト 
    git checkout xxx
    
    # 直前のgit stashを取り出す
    git stash pop

     

  • パスワードやAPI keyをコンソールから入力を、より安全にする

    パスワードやAPI keyをコンソールから入力を、より安全にする

    パスワードやAPI keyを入力する度、神経を尖らせている

    今までは

    HISTCONTROL=ignorespace

    を定義し、

     export __pass=xxxxxxxx

    のように、頭にスペースを付けることで、hitoryコマンドでパスワードが表示されないよう工夫をしていた

    Qiitaを見ててreadコマンドをうまく使うやり方を知った。

    Linux 作業手順書からべた書きパスワードをなくすシンプルなアイディア
    https://qiita.com/ktooi/items/ba156bb1848c31f04949

    $ read -sp "Please input your password: " __pass; echo
    ※ パスワード は XXX を参照して入力してください。
    $ curl -u "user:${__pass}" http://example.com

    シンプル!

    前途した HISTCONTROL を使う方法はキーなどを環境変数に設定するのに使い、
    readはパスワードに使うのが綺麗な使い分けかも。