Help us understand the problem. What is going on with this article?

Git小ネタ集(add、commit、push、fetch、pullを覚えた後に読むと便利に感じるはず!)

More than 1 year has passed since last update.

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では様々な設定を行うことができます。
設定の範囲はsystemgloballocalの3段階に分かれており、systemgloballocalの順に設定が読み込まれます。

設定 範囲 設定コマンド 実際の設定ファイル(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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away