備考でもブランチ名にスラッシュ使えるんですよねー。スラッシュ区切りにするとディレクトリで区切られます。混乱するのであんまりやらないほうがいいかと。remotes/origin/slashローカルブランチとリモート追跡ブランチの名称が重複した場合、ローカルブランチが優先されるようですね。リファレンスとしてのブランチとタグの違いは一言でいうと永続化を目的とするかどうかという点にあります。私が言う永続化は以下の2つの意味を指しています。リファレンスの追加削除タグもブランチも追加削除可能ですし運用ルールによりますが、基本的にタグは一度つけたらそのままで頻繁に取り外しされるようなものではありません。逆にブランチは一部の永続ブランチを除いて、目的ごとにブランチを作成、目的を達したら削除するのが一般的です。一部の永続ブランチというのも特に決まっているわけではなく、運用ルールによりますが、一番基本的なものはGitのデフォルトブランチであるmasterでしょう。リファレンスの移動Gitでは常に何らかのブランチに属していますが、その状態からコミットするとブランチの位置は最新のリビジョンに移ります。内部的にはローカルブランチはheads/ディレクトリに入っています。先端を意味するので新しいリビジョンができたら移動するということですね。コミットで動きません。外さない限りは同じリビジョンを見続けます。リベースしても動きません。--forcePUSH/PULL/FETCH(リモートリポジトリへの変更送受信)はリモートリポジトリ、かつ、ブランチ単位で行います。オプションですべて)そしてリビジョンは親(前)リビジョンへのポインタを持っています。リモートリポジトリがローカルからリビジョンを受け取るとき、そのリビジョンがリモート側のリビジョンのブランチとしてポインタをたどれる必要があります。行うとリファレンスも移動されるため、別のリビジョンとして判断されPUSHの際にエラーが発生します。設定することで受け取ったリビジョンを新たなブランチとして判断してくれます。fast-forward(ファストフォワード)単にリファレンスを進めることで変更差分を取り込むマージ方法をfast-forwardといいます。オプションをマージの際に指定する必要があります。fast-forwardでマージできる条件は決まっています。コミットグラフ的に言えば、マージ対象コミットから過去に遡った直線状に現コミットがいる場合です。これがわかりにくい場合はリビジョンを集合として見れば現コミットの祖先リビジョン集合がマージ対象の祖先リビジョン集合にすべて含まれていると考えてみましょう。上記の例だとmasterブランチはtopicブランチにもhotfixブランチにもfast-forward可能です。要素を取り込んで同じ集合になるイメージですね。逆にこの場合hotfixブランチからtopicブランチに、またはtopicブランチからhotfixブランチにfast-forwardマージはできません。操作については以下の書籍を見れば大抵のことはなんとかなると思います。間違ってるところがあったら指摘ください。