- 投稿日:2019-04-05T23:15:29+09:00
Gitで別のリポジトリの特定のコミットを取り込む・対応したコミットをおこなう
やりたいこと
特定のリポジトリのコミットに対応して(変更を取り込んで)、別のリポジトリにコミットしたいことがあります。
例えば、GitHub上のリポジトリにある英語の公式サイトを翻訳して、別のリポジトリの日本語公式サイトを作成している場合などです。例: 英語公式サイトのコミットに対応して、日本語サイトのコミットをおこないました。
そんなときには
git cherry-pick
を使いましょう!git cherry-pickとは
git cherry-pick
とは、別リポジトリまたは他のブランチの特定コミットを自分が今いるブランチに反映できるコマンドです。以下のようにすると、変更が取り込まれ、またコミッタ情報には元のコミットをした人に加えて新たにコミットをおこなった自分自身が入るようです。
ちなみにWikipediaによるとcherry-pickの意味は以下のとおりだそうです。
cherry-pickingの語義は、サクランボの熟した果実を熟していないものから選別することであり、転じて「良い所だけを取る」「(特売品専門の)購買者」「つまみ食い」の意味で使用される。
(略)
Gitのようなバージョン管理システムにおいて、あるコミットで行われた変更を別な箇所に「つまみ食い」的に適用する操作がチェリーピックと呼ばれる[1]。手順
上の概略図も参考にしながら、手順を参照すると少しわかりやすいと思います。
日本語サイトのリポジトリをローカルにプルしておき、ブランチ(名前は適当にここでは
dev
)を切っておきます。git remote add english https://github.com/abc-english/example-website.git git fetch english git cherry-pick {englishの対応したいコミットハッシュ値(4e106d...)}英語サイトを
english
というリモートに追加、フェッチします。
その中から日本語サイトに反映させたい・対応付けさせたいコミットをハッシュ値によって指定して取り込みます。これがgit cherry-pick
コマンドです。日本語訳がある程度進んでいる場合には競合が発生するので、適当なエディタで編集して解消(日本語訳)をおこないます。
git add <path> git commit -m {対応した英語サイトのコミットのコミットメッセージ} git push --set-upstream origin dev編集をおこなったファイルをステージングし、コミットをおこないます。コミットメッセージは対応したコミットのコミットメッセージをコピペしたほうが対応したことがわかりやすくなると思います。
dev
ブランチとして日本語サイトのリモートリポジトリにプッシュして完了です。あとはGitHubなどでプルリクエストを出すなり何なりしましょう。
PRに含まれるコミットが英語サイトのコミットに対応したものだと、たぶん気づいてもらえるはずです!参考文献
- 投稿日:2019-04-05T18:47:46+09:00
bashでgitのブランチ名を表示させる。
Homebrewでinstallしていることが前提の記事が多かったので、
自分用メモに自分がやった手順を記しておきます。$ git branch
でbranch名を確認することが多い人はやっておくと作業スピードがグングン上がります。
まず、
・git-prompt.sh
・git-completion.bash
この2つのファイルを探します。
Homebrewでinstallした人は/usr/local/etc/bash_completion.d/
にあるそうですが、自分はなかった。
どうやらHomebrewは使っていないらしい。探し方は、
sudo find / -name git-prompt.sh sudo find / -name git-completion.bashで検索する。どちらも複数ヒットしたけど、
ヤマカンで、/Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash
/Library/Developer/CommandLineTools/usr/share/git-core/git-prompt.shでいくことにした(うまくいった)
次に、vi ~/.bashrcに下記を追記した。
$ vi ~/.bashrc source /Library/Developer/CommandLineTools/usr/share/git-core/git-prompt.sh source /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash GIT_PS1_SHOWDIRTYSTATE=true export PS1='\[\033[32m\]\u@\h\[\033[00m\]:\[\033[34m\]\w\[\033[31m\]$(__git_ps1)\[\033[00m\]\n\$ '最後に.bashrcから読めるようにするために、
$ vi ~/.bash_profile source ~/.bashrcを追記、
.bash_profileと.bashrcにやったことはhttps://bottoms-programming.com/archives/terminal-branch-name.html
このサイトを参考にコピペしただけ。試してみたらあっさりできた。
これで能率アップ間違いなし。
- 投稿日:2019-04-05T16:57:58+09:00
ローカルでGitHub Desktopを使ってRepositryを作るまで
はじめに
最近、ローカル環境でプログラムを作ることが多く、管理したいなーと思い始めて、
GitHub Desktopを使って、管理することにしました。git hub
今回、確認する方法ではGitHubのアカウントを持っていることが前提条件となるのでお持ちでない方は
https://github.com/にアクセスしてgithubアカウントを用意してください新規登録
Sign upを押下して、登録しているユーザー名もしくはメールアドレス、パスワードを入力してログインしてください。
すでにアカウントを持っている方
Sign inを押下してメールアドレス、パスワードの登録を行ってください
GitHub Desktopの準備
GitHub Desktopは以下のリンクから入手可能なので、適宜DLしておいてください。
https://desktop.github.com/ここで下準備が終わりました。いよいよローカルで作ったファイルをgitにあげてRepositryを作成する
GitHub DesktopのFileを押下すると以下のような項目が並んでいる
ここで、Add Local Repositoryを選択すると、
このような選択ウィンドウが表示されるので、Chooseを選択して、ファイルを選択するか、直接パスを入力してAdd Repositoryを押下する。
するとこのようなウインドウが表示されるので、
すると以下のような画像が表示されるので必要事項を記入して、Publish Repositoryを押下する
作成されたRepositoryを確認する
https://github.com/にアクセスしてログインを済ませる。
アカウントの下にあるYour Repositoryを選択するさっきあげたフォルダが確認できた。
ファイル編集に伴うコミットのやり方はまた別の記事で紹介します。ではでは
- 投稿日:2019-04-05T16:57:58+09:00
ローカルでGithub Desktopを使ってRepositryを作るまで
はじめに
最近、ローカル環境でプログラムを作ることが多く、管理したいなーと思い始めて、
GitHub Desktopを使って、管理することにしました。git hub
今回、確認する方法ではGitHubのアカウントを持っていることが前提条件となるのでお持ちでない方は
https://github.com/にアクセスしてgithubアカウントを用意してください新規登録
Sign upを押下して、登録しているユーザー名もしくはメールアドレス、パスワードを入力してログインしてください。
すでにアカウントを持っている方
Sign inを押下してメールアドレス、パスワードの登録を行ってください
GitHub Desktopの準備
GitHub Desktopは以下のリンクから入手可能なので、適宜DLしておいてください。
https://desktop.github.com/ここで下準備が終わりました。いよいよローカルで作ったファイルをgitにあげてRepositryを作成する
GitHub DesktopのFileを押下すると以下のような項目が並んでいる
ここで、Add Local Repositoryを選択すると、
このような選択ウィンドウが表示されるので、Chooseを選択して、ファイルを選択するか、直接パスを入力してAdd Repositoryを押下する。
するとこのようなウインドウが表示されるので、
すると以下のような画像が表示されるので必要事項を記入して、Publish Repositoryを押下する
作成されたRepositoryを確認する
https://github.com/にアクセスしてログインを済ませる。
アカウントの下にあるYour Repositoryを選択するさっきあげたフォルダが確認できた。
ファイル編集に伴うコミットのやり方はまた別の記事で紹介します。ではでは
- 投稿日:2019-04-05T14:02:14+09:00
Git Commit後にコメントを変更
[直前のもの]
git commit --amend[直前のものではない場合]
1.
git rebase -i HEAD~n
を入力
・-iはCase Insensitiveの略
・-iはInteractiveの略
・nは取得するコメントの数。2個前のコメントを修正したい場合はnを2に変更して入力。2.
Git rebase -i HEAD~3
と入力した場合、pick e499d89 Delete CNAME pick 0c39034 Better README pick f7fde4a Change the commit message but push the same commit. # Rebase 9fdb3bd..f7fde4a onto 9fdb3bd # # Commands: # p, pick = use commit # r, reword = use commit, but edit the commit message # e, edit = use commit, but stop for amending # s, squash = use commit, but meld into previous commit # f, fixup = like "squash", but discard this commit's log message # x, exec = run command (the rest of the line) using shell # # These lines can be re-ordered; they are executed from top to bottom. # # If you remove a line here THAT COMMIT WILL BE LOST. # # However, if you remove everything, the rebase will be aborted. # # Note that empty commits are commented outと出力されるので、以下のように変えたいコメントの行のPickをRewordに変更する。
pick e499d89 Delete CNAME reword 0c39034 Better README reword f7fde4a Change the commit message but push the same commit.変更を保存して閉じるとコメントを修正する画面になるので修正して保存する。