oinume journal

Scratchpad of what I learned

squash mergeの環境でCascading PRsでコンフリクトした時

最近以下のような記事を目にすることがあり、ちょうど自分もsquash mergeの環境でひとつ問題を抱えていたので、その話を自分のメモ代わりに書きたくなった。

問題とは、上にある記事のcascading PRsの話で、feature1 -> feature2 というようにbranchを派生して作った場合に、feature1 をmainにマージした後に作業ブランチを feature2 にして git rebase main すると、必ずコンフリクトが発生するので悩んでいた、ということ。

解決策としては、以下にあるようにgit rebase --onto main <last commit on feature1> feature2 をすればいいらしい。「らしい」というのはまだ自分は試してないけど、同僚がこれで「うまくいけた」と言っていたので。

stackoverflow.com

もしくはJun Mukai's blogに書いてあるような以下の方法でもいいのかもしれない。そういえば git rebase --skip って使ったことなかったな。

PR1に由来するコンフリクトは自分にとっては自明だし、ほとんどの場合にはgit rebase –skipするだけだ。

Sending pull-request only with terminal and keyboard

Requirements

  • Mac
  • Terminal
  • hub command (brew install hub)

How to send pull-request

Make a new branch.

$ git checkout -b new-cool-feature

Editing source code and commit.

$ git commit -a

Push to remote and copy correct git push command into clipboard.

$ git push 2>&1 | grep git | pbcopy

Paste clipboard into terminal.

$ git push --set-upstream origin new-cool-feature

Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 324 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
To git@github.com:example/example-project.git
 * [new branch]      new-cool-feature -> new-cool-feature
Branch new-cool-feature set up to track remote branch new-cool-feature from origin.

Send pull-request by hub.

$ hub pull-request
https://github.com/example/example-project/pull/1

or open github.com with a browser and make a pull-request on page.

$ hub browse

ターミナルとキーボードだけでプルリクエストを送る

これはSending pull-request only with terminal and keyboardの日本語の記事です。

必要なもの

  • Mac
  • Terminal
  • hub command (brew install hubでインストールしておく)

How to send pull-request

ブランチを作る

$ git checkout -b new-cool-feature

ソースを編集する

$ git commit -a

わざとgit pushしてエラーにして、正しいコマンドをpbcopyでクリップボードにコピー

$ git push 2>&1 | grep git | pbcopy

Cmd+Vでペーストしてpush

$ git push --set-upstream origin new-cool-feature

Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 324 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
To git@github.com:example/example-project.git
 * [new branch]      new-cool-feature -> new-cool-feature
Branch new-cool-feature set up to track remote branch new-cool-feature from origin.

hubコマンドでプルリクエストを作成

$ hub pull-request
https://github.com/example/example-project/pull/1

もしくは

$ hub browse

でブラウザでgithub.comを開いて画面からプルリクエストを作成

開発効率をUPする Git逆引き入門を読んだ

開発効率をUPする Git逆引き入門

開発効率をUPする Git逆引き入門

  • 作者: 松下雅和,船ヶ山慶,平木聡,土橋林太郎,三上丈晴
  • 出版社/メーカー: シーアンドアール研究所
  • 発売日: 2014/04/09
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログ (4件) を見る

著者の@matsukazuさんより献本してもらいました。増刷が決まったようでおめでとうございます!すごい遅くなったけど、やっと読み終わったので感想をば。

全体を通して読んで思ったのは、Git関連の本で一番やさしい本だということ。Gitの説明をするのにブランチやらそのマージやら色々解説しないといけないと思うんだけど、それが図入りでなるべくわかりやすい言葉で説明されていてよかった。あと、本をもらったときに「えっ、こんなに薄いの?」ってビックリした。というのは、Gitは機能が豊富なので細かい説明をしだすとけっこうボリュームが多くなってしまうと思うんだけど、なるべく基本的なところ以外は解説しないようにしてあの分量で済むようにしていたのじゃないかなぁ。

SourceTreeをちゃんとスクリーンショット付きで解説しているのはこの本が初めてだと思うので、コマンドに抵抗があるデザイナーなど非エンジニアの人にも安心してオススメできる本だと思う。Gitの本はまずこの本を読んで、それから次のステップとして以下のような本をよめばいいんじゃないかなぁと思う。もっとこの本が早く出版されてたら、、、と思わずにはいられない。

Gitによるバージョン管理

Gitによるバージョン管理

実用Git

実用Git

自宅サーバのGitリポジトリをbitbucketに移行

サーバの設定ファイルや個人のdotfileを格納していた自宅サーバのGitリポジトリ、よくよく考えたらbitbucketって無料でプライベートリポジトリ作れたよなぁって思って移行してみた。

 

bitbucketのアカウントさえ取ってしまえば、Gitのリポジトリの移行自体はすごく簡単だった。

 

 

$ git remote

$ git remote rm origin

$ git remote add origin git@bitbucket.org:oinume/repo.git

 

 

ってやるだけ。