20190405のGitに関する記事は5件です。

Gitで別のリポジトリの特定のコミットを取り込む・対応したコミットをおこなう

やりたいこと

特定のリポジトリのコミットに対応して(変更を取り込んで)、別のリポジトリにコミットしたいことがあります。

例えば、GitHub上のリポジトリにある英語の公式サイトを翻訳して、別のリポジトリの日本語公式サイトを作成している場合などです。

例: 英語公式サイトのコミットに対応して、日本語サイトのコミットをおこないました。

git-cherrypick.png

そんなときには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に含まれるコミットが英語サイトのコミットに対応したものだと、たぶん気づいてもらえるはずです!

参考文献

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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
このサイトを参考にコピペしただけ。

試してみたらあっさりできた。

これで能率アップ間違いなし。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

ローカルでGitHub Desktopを使ってRepositryを作るまで

はじめに

最近、ローカル環境でプログラムを作ることが多く、管理したいなーと思い始めて、
GitHub Desktopを使って、管理することにしました。

git hub

今回、確認する方法ではGitHubのアカウントを持っていることが前提条件となるのでお持ちでない方は
https://github.com/にアクセスしてgithubアカウントを用意してください

ウインドウ右上に以下のリンクがあるので
スクリーンショット 2019-04-05 11.35.23.png

新規登録

Sign upを押下して、登録しているユーザー名もしくはメールアドレス、パスワードを入力してログインしてください。

すでにアカウントを持っている方

Sign inを押下してメールアドレス、パスワードの登録を行ってください

GitHub Desktopの準備

GitHub Desktopは以下のリンクから入手可能なので、適宜DLしておいてください。
https://desktop.github.com/

GitHub Desktopを開くとこんな感じ
スクリーンショット 2019-04-05 16.43.17.png

ここで下準備が終わりました。いよいよローカルで作ったファイルをgitにあげてRepositryを作成する

GitHub DesktopのFileを押下すると以下のような項目が並んでいる
スクリーンショット 2019-04-05 16.45.59.png

ここで、Add Local Repositoryを選択すると、
スクリーンショット 2019-04-05 16.47.20.png

このような選択ウィンドウが表示されるので、Chooseを選択して、ファイルを選択するか、直接パスを入力してAdd Repositoryを押下する。
するとこのようなウインドウが表示されるので、
スクリーンショット 2019-04-05 16.49.51.png

スクリーンショット 2019-04-05 16.50.22.png
Publish repositryを押下する。

すると以下のような画像が表示されるので必要事項を記入して、Publish Repositoryを押下する

スクリーンショット 2019-04-05 16.51.21.png

作成されたRepositoryを確認する

https://github.com/にアクセスしてログインを済ませる。
アカウントの下にあるYour Repositoryを選択する

スクリーンショット 2019-04-05 16.54.11.png

スクリーンショット 2019-04-05 16.55.31.png

さっきあげたフォルダが確認できた。
ファイル編集に伴うコミットのやり方はまた別の記事で紹介します。

ではでは

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

ローカルでGithub Desktopを使ってRepositryを作るまで

はじめに

最近、ローカル環境でプログラムを作ることが多く、管理したいなーと思い始めて、
GitHub Desktopを使って、管理することにしました。

git hub

今回、確認する方法ではGitHubのアカウントを持っていることが前提条件となるのでお持ちでない方は
https://github.com/にアクセスしてgithubアカウントを用意してください

ウインドウ右上に以下のリンクがあるので
スクリーンショット 2019-04-05 11.35.23.png

新規登録

Sign upを押下して、登録しているユーザー名もしくはメールアドレス、パスワードを入力してログインしてください。

すでにアカウントを持っている方

Sign inを押下してメールアドレス、パスワードの登録を行ってください

GitHub Desktopの準備

GitHub Desktopは以下のリンクから入手可能なので、適宜DLしておいてください。
https://desktop.github.com/

GitHub Desktopを開くとこんな感じ
スクリーンショット 2019-04-05 16.43.17.png

ここで下準備が終わりました。いよいよローカルで作ったファイルをgitにあげてRepositryを作成する

GitHub DesktopのFileを押下すると以下のような項目が並んでいる
スクリーンショット 2019-04-05 16.45.59.png

ここで、Add Local Repositoryを選択すると、
スクリーンショット 2019-04-05 16.47.20.png

このような選択ウィンドウが表示されるので、Chooseを選択して、ファイルを選択するか、直接パスを入力してAdd Repositoryを押下する。
するとこのようなウインドウが表示されるので、
スクリーンショット 2019-04-05 16.49.51.png

スクリーンショット 2019-04-05 16.50.22.png
Publish repositryを押下する。

すると以下のような画像が表示されるので必要事項を記入して、Publish Repositoryを押下する

スクリーンショット 2019-04-05 16.51.21.png

作成されたRepositoryを確認する

https://github.com/にアクセスしてログインを済ませる。
アカウントの下にあるYour Repositoryを選択する

スクリーンショット 2019-04-05 16.54.11.png

スクリーンショット 2019-04-05 16.55.31.png

さっきあげたフォルダが確認できた。
ファイル編集に伴うコミットのやり方はまた別の記事で紹介します。

ではでは

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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.

変更を保存して閉じるとコメントを修正する画面になるので修正して保存する。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む