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ブランチに送る

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

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

Git超入門:”git push origin master”の”push”と”origin”と”master”の意味がわからないあなたへ

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

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

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

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

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

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

分岐を考えましょう。

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

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

追記

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

-Git
-

執筆者:


comment

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

関連記事

no image

ブランチ構成について

gitのブランチ構成などについて少しまとめてみようと思います。 Contents1 ブランチ一覧1.1 feature1.2 develop1.3 staging1.4 production2 ブラン …

no image

git tag

あまり普段から使ってこなかったgit tagについて。 使う用途ですが主にリリースポイントについて印として使います。 通常のタグの付与

no image

Gitデタッチ、インデックス、プッシュなど

まとまってませんが、Gitであったトラブルについてのメモです。 Contents1 デタッチ状態2 インデックス一覧&削除2.1 インデックスの一覧2.2 インデックスから取り除くとき3 git pu …

no image

Gitの活用に関して

今回はgitの技術的なことではなく、主に運用に関して。超基礎的なことですが、チームで開発する場合にはルールを徹底してないと混乱をきたします。 Contents1 ブランチを追加機能ごとにきる2 バグに …

no image

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

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

アーカイブ