skillup

技術ブログ

Git

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

投稿日:

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 cloneがよいですが、すでにあればその別環境で新ブランチを作ったあとgit pullすればOKです。

-Git
-

執筆者:


comment

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

関連記事

no image

gitの作業ディレクトリ・インデックス・HEADに関して

gitを使い始めてしばらくたちますが、まだ明確なイメージがつかめていないです(汗) みようみまねでやっていて、ポイント、ポイントで困ったことは検索してなんとか対応してきましたが、体系的な理解ができてい …

no image

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

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

no image

git reset vs git checkout

gitの小ネタです。 現状のソースから履歴をもどしたいときgit resetとgit checkoutがあると思います。 いまいち、違いがわかりませんでしたが、 git resetはファイル単位でなく …

no image

追跡ブランチからローカルブランチを作る方法~ (svn→gitの移行など)

SVNで運用されていたプロジェクトをgitに移行する機会があったのでその時のメモなどを。 思ってたよりは楽だったかな・・・ Contents1 準備2 実際の移行(git svn clone)3 gi …

no image

最新版のgitをソースから&git diffおさらい

Contents1 gitをソースから2 git diff gitをソースから gitはyumから入れてもいいんですが、バージョンが古かったりすると機能がいろいろと制限されるなどのデメリットもあります …