git reset コミットの整理方法

コミットの打ち消し

git reset --soft HEAD^

  • -softオプション:ワークディレクトリの内容はそのままでコミットだけを取り消したい場合に使用。
  • -hardオプション:コミット取り消した上でワークディレクトリの内容も書き換えたい場合に使用。

[Git]コミットの取り消し、打ち消し、上書き - Qiita

リモートへプッシュしたけど不要なブランチを削除

git push --delete origin <remote branch name>

【Object.assign()】データのコピーを作成したい時に便利

外部APIを叩いて、返ってきたデータがresponseであるとする。

const response = {
  data: [
    {
      name: "Wiskey",
      price: "350",
      percentage: "10",
    },
    {
      name: "Lemon Sour",
      price: "350",
      percentage: "5",
    },
    {
      name: "Beer",
      price: "350",
      percentage: "5",
    },
    {
      name: "Plum shu",
      price: "350",
      percentage: "12",
    },
    {
      name: "Vodka",
      price: "350",
      percentage: "24",
    },
  ],
};

このままだと使いづらい。

dataの中身だけ取り出して別の変数名にしたい時は下記のようにする。


const { data: alcohols = [] } = response;

console.log(alcohols)
[
  { id: 1, name: 'Wiskey', price: '350', percentage: '10' },
  { id: 2, name: 'Lemon Sour', price: '350', percentage: '5' },
  { id: 3, name: 'Beer', price: '350', percentage: '5' },
  { id: 4, name: 'Plum shu', price: '350', percentage: '12' },
  { id: 5, name: 'Vodka', price: '350', percentage: '24' }
]

alcoholsのインスタンスを作りたいときは、Object.assignが使える。第一引数にpush先を置き、第二引数にコピーしたいオブジェクトを置く。

コピー後とコピー前で比較してみると、同じではないことがわかる。


const copy_alcohol = Object.assign({}, alcohols);
console.log(copy_alcohol === alcohols); // false

Object.assignを活用すれば、オブジェクトに対して上書きを加えることもできる。

const assign_attributes = {
  data: [
    {
      name: "highball",
      price: "200",
      percentage: "5",
    },
    {
      name: "sake",
      price: "1000",
      percentage: "23",
    },
  ],
};

const { data: update = []} = assign_attributes;

const assigned_alcohols = Object.assign(copy_alcohol, update);
// {
//     '0': { name: 'highball', price: '200', percentage: '5' },
//     '1': { name: 'sake', price: '1000', percentage: '23' },
//     '2': { name: 'Beer', price: '350', percentage: '5' },
//     '3': { name: 'Plum shu', price: '350', percentage: '12' },
//     '4': { name: 'Vodka', price: '350', percentage: '24' }
//   }

何かと便利、Object.assign()

参考文献

 

Github上でフローチャート図を書く。

mermaid

github上でフローチャート図を書く時に直感的に使用できるjavascript?

URLにmermaid-jsと書いてあったからjavascriptかな?と思ったけど、githubのissue内でcommentとしてフローチャート図を書くときに下記のように使える。

```mermaid
sequenseDiagram
Actor スバル
スバル->>自動販売機: お金を入れる
自動販売機-->>スバル: 光るボタンを表示
スバル->>自動販売機: 好きな光るボタンを押す
自動販売機-->>スバル: 飲み物を提供する
```
[mermaid - Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.](<https://mermaid-js.github.io/mermaid/#/flowchart>)

【Git】履歴の修正

git rebase -i

commitの履歴を整理することができる

$ git fetch origin
$ git rebase -i origin/<ブランチ名>
$ git push --force-with-lease

git push —force-with-lease

pushする際、リモートrefとローカルrefを比較して、ローカルが最新だった場合のみpushを成功させるオプション。

git push -f で他の人がくわえていたcommitを上書きしてしまうことを防ぐために、pushするときは必須。

【Linux】topコマンド

Linux command "top"

ターミナルでtopと打つと、現在PCがどのようなprocessを実行中か見れる。

表示されているインデックスはそれぞれ下記の意味を持つ。

  • PID: タスクのIDを指す
  • PR: processの優先順位を示す. 数字が高いほど優先順位が高い
  • VIRT: タスク当たりのバーチャルメモリ
  • USER: タスクの所有者の名前
  • %CPU: どのくらいCPUを占有しているか
  • TIME+:  TIMEと同じだが、より粒度を細かくして時間を表現している
  • SHR: タスクあたりの使用kb
  • NI: Nice Valueを示す。マイナスであるほど優先度が高い
  • %MEM: タスクが使用しているメモリを示す
  • RES: 物理RAMがどのくらい使われているのかをkilobytesで表現している
  • COMMAND: プロセスをスタートさせた時のコマンドを示す

画面

打ち込んだ時の画面

 

【Git】 コミットの打ち消し・ブランチ削除

コミットの打ち消し

git reset --soft HEAD^

  • -softオプション:ワークディレクトリの内容はそのままでコミットだけを取り消したい場合に使用。
  • -hardオプション:コミット取り消した上でワークディレクトリの内容も書き換えたい場合に使用。

[Git]コミットの取り消し、打ち消し、上書き - Qiita

リモートへプッシュしたけど不要なブランチを削除

$ git push --delete origin <remote branch name>

外部APIから取得したデータをGoogle Spreadsheetへ転記

外部APIから取得したデータをGoogle Spreadsheetへ転記する

  1. Faradayを使ってSmartnewsからあるキャンペーンのデータを取得
  2. 取得したデータをスプレッドシートへ転記する

2を分解すると

 

ActiveJobでGoogleDriveのGoogleSpreadSheetへデータを書き込む - Qiita

GitHub - gimite/google-drive-ruby: A Ruby library to read/write files/spreadsheets in Google Drive/Docs.

google-api-ruby-client/sheets.rb at main · googleapis/google-api-ruby-client