skillup

技術ブログ

Git

Gitでのbranch 新ブランチの作成&リモート反映&別環境反映

投稿日:2015年6月24日 更新日:

gitを使っているとわけのわからないことは多いのですが(爆)、その中の1つがbranch(ブランチ)でしょう。

これも説明をきいてもわからないのですが、自分でそのケースを学習してみればすぐにわかると思います。

branchとは?

日本語訳すると枝ですが、どのようなときに使われるかというと例えば開発環境で本番と同一環境のものを保持しつつ、新規機能を取り入れたものを作りたいとします。

通常ですとこれらを2つのディレクトリに置いたりするのですが、いずれは統合したりする必要がありますし、ディレクトリ分離方式だと差分がいたるところで発生します。

そこで同一のディレクトリで枝を作り、両方の状態を記録、管理しておこう!というのがbranchの発想かと思います。(多分)

branchの作り方

通常だとディフォルトでmasterというbranchが作られます。

新しいブランチを作りたい場合、例えばrenewalというブランチ名を作成したいときは,git branch renewalとうてば無事branchが作成されます。ローカルのみでOKで、リモートはpushの際に自動的に作られるようです。

branchの一覧

branchを確認する場合はgit branch -a と入力するとブランチが出ます。ユーザーが作成したブランチと同様、追跡ブランチ(remoteとローカルの窓口みたいなもの?)も赤字で見えているかと思います。

私のリポジトリだと下記のような状態です。

 branchの切り替え

branchの切り替えはgit checkout ブランチ名です。

切り替えたあと、git branch -aを入力すると*のマークが指定したブランチに変わっているのがわかるかと思います。

リモートへの反映

ちなみにリモートでこのブランチを反映させるときはリモートでブランチを作り、

git push origin renewal:renealとうちます。

いままでgit push origin masterとうっていましたが、正しくは

git push origin master:master(ローカルのmasterブランチとリモートのmasterブランチを統合する)の省略です。

ちなみにoriginというのはリモートのサーバーに自動でつけられる名称のようですね。

上記のgit push origin master:masterのコマンドの意味ですが、下記のような意味です。

originというリモートサーバーにローカルのmasterブランチのデータをリモートのmasterブランチに送る

ようやく意味がわかった・・・

ちなみに参考にしたのは下記リンクです。

http://dqn.sakusakutto.jp/2011/10/git_push_origin_master.html

新ブランチをローカルに反映

別の環境でブランチを作成し、それを自分のローカル環境に取り込みたいときは、

git branch newbranch(新しいブランチ名)

git pull origin newbranch で取り込めます。

注意点としては自分のローカル環境でブランチを再作成すること。

ただし、ローカルで作ったブランチはgit branchをした際の現在のbranchの影響をうけますので、スムーズに取り込めないこともあります。

分岐を考えましょう。

↑思いっきり間違いです。

git fetch --allで追跡ブランチを普通に取り込めます。

追記

また別の環境で新ブランチを引っ張ってくるときは、リポジトリ自体がないときはgit cloneがよいですが、すでにあればその別環境で新ブランチを作ったあとgit pullすればOKです。

-Git
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Git→Jenkinsの連携

気がついたら投稿数が50超えてましたね。 ガチンコ塾とあわせて更新してますが、2ヶ月ちょいなので結構いいペースで更新しているかと思います。 大切なのはこれを継続できるかですね。ただ、ガチンコ塾に比べる …

no image

git別リポジトリからの差分取りこみ、リモートの別ブランチ反映、強引なstash

gitについて最近覚えたことなど Contents1 別リポジトリからの差分取り込み2 別ブランチからファイルのみ取り込み3 追跡ブランチをローカルに取り込みたいとき4 強引なgit stash 別リ …

no image

gitのfetchに関して

gitでリモートの変更を取り込む場合、大きく分けるとfetchとpullがあります。 両者の違いですが、 fetch=一度、変更を取り込んで、ローカルの変更と相違点を確認できます。確認後mergeを行 …

no image

gitのfetch/merge/rebaseについて その2

以前、gitのfetch/mergeについての記事を書きましたが、理論的なことは書いてあっても実際に処理の流れをかいていなかったので、今回はそのことについてメモリます。 Contents1 競合が起き …

no image

Gitで差分を見やすく表示する方法

gitの差分確認ですが、デフォルトのコンソールの画面だと下記のようなわかりにくい表示になります。 差分をチェックしたい場合はやはり左右にわけてしっかり見ることができたほうがいいですね。 この実現の仕方 …