Gitの小ネタ集です。
add、commit、push、fetch、pull あたりを覚えたあとに見ると便利!と感じたりするかもです。
#リモートトラッキングの追加
git pull
してもエラーになるときはありませんか?
下の例は、ローカルのmasterブランチにリモートのmasterブランチをpullしようとした例です。
$ git branch
* master
$ git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> master
pull コマンド(引数なし)は、現在チェックアウトしているローカルブランチに、そのブランチの上流ブランチの内容を取り込みます。
チェックアウトしているmasterブランチに上流ブランチが設定されていないため、エラーとなってしまっています。
以下のコマンドでローカルブランチに上流ブランチが設定されているかどうかを確認できます。
# ローカルブランチの情報を出力する
$ git branch -vv
* master aaaaaaa commit_msg
test aaaaaaa [origin/master] commit_msg
test
ブランチには上流ブランチのorigin/master
が設定されていますが、master
ブランチには上流ブランチが設定されていません。
pull時のこのエラーを解決する方法は2つあります。
###①pullコマンドに引数を指定する
$ git remote
origin
$ git pull origin master
pull <RemoteRepository> <branch>
で、pullコマンドを実行することができます。
ローカルブランチに上流ブランチが設定されていなくてもリモートリポジトリの内容を反映できます。
###②ローカルブランチに上流ブランチを設定する
$ git branch -u origin/master master
$ git branch -vv
* master aaaaaaa [origin/master] commit_msg
上流ブランチを設定したため、pull
コマンドを引数なしで実行してもエラーなく実行できます。
今までで、「上流ブランチ」という言葉がでてきますが、そもそもこの上流ブランチとは何でしょうか?
すごくわかりやすい記事がありました。こちらをリンクさせていただきます。
https://qiita.com/uasi/items/69368c17c79e99aaddbf
#直前のブランチに戻る
$ git checkout -
今のブランチの前にいたブランチにチェックアウトすることができます。
#リモートリポジトリでのブランチの削除をローカルにも反映する
$ git fetch --prune
リモートでブランチが削除されたときに、pullやfetchをしても、リモート追跡ブランチ(origin/master的なもの)は削除されずに残ってしまいます。
--prune
オプションを付けることで、リモートで削除されたブランチをリモート追跡ブランチからも消してくれます。
#Gitの設定の範囲
Gitでは様々な設定を行うことができます。
設定の範囲はsystem
、global
、local
の3段階に分かれており、system
、global
、local
の順に設定が読み込まれます。
設定 | 範囲 | 設定コマンド | 実際の設定ファイル(Win) | 実際の設定ファイル(Linux系) |
---|---|---|---|---|
system | システム全体 | $ git config --system | C:¥Program Files¥Git¥mingw64¥etc¥gitconfig(インストール方法などによって異なります) | /etc/gitconfig |
global | ユーザ全体 | $ git config --global | C:¥Users¥<user>¥.gitconfig | ~/.gitconfig |
local | 対象リポジトリのみ | $ git config | .git/config | .git/config |
参考:https://qiita.com/shionit/items/fb4a1a30538f8d335b35
#絵文字でコミット
時と場合によって使い分ける必要があると思いますが、コミットメッセージに絵文字を入れることができます。
$ git commit -m ":lipstick:"
BibucketやGitHubなどのサービスで見ると絵文字になっているはずです。
参考:https://qiita.com/kawasy/items/8f6c179126af10f2ff0d
#おしゃれなコミットフレーズ
こちらも時と場合によって使い分けてください。
コミットメッセージをおしゃれに表現します。
cosmetic change
(インデントを美しくした時など)みたいな感じです。
参考:https://qiita.com/ken_c_lo/items/4cb49f0fb74e8778804d