質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Q&A

解決済

2回答

1070閲覧

gitの使い方(大幅な変更がある場合)

olee46

総合スコア32

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

0グッド

0クリップ

投稿2018/02/21 05:02

昨日からBitbucketを使い始めたのですが、バージョン管理の仕方でわからないところがあります。
gitを使う理由としては、

file0-0.txt
file0-1.txt
file0-2.txt
...

みたいなことをしなくていい、というところにあると思うのですが、
ソースコードをガラっと変える場合(バグ修正ではなく、構成から変える場合)はどうしたらいいのでしょうか?
通常通りのgit add→git commit→git pushでいいのでしょうか。

皆さんがどうやって使っているか教えていただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

ソースコードをガラっと変える場合(バグ修正ではなく、構成から変える場合)はどうしたらいいのでしょうか?

通常通りのgit add→git commit→git pushでいいのでしょうか。

構いません。
リリースして動作するシステムやアプリケーションは1個だけですよね?
つまり、最新の私が最強なのです。
一応全ての履歴は持っているので、その気になれば何時でも特定コミットの状態にプロジェクトの構成ファイルをロールバック出来ます。

皆さんがどうやって使っているか教えていただきたいです。

とは言うもののいきなり構成をガラリと変えるのは怖いものです。
もちろん私も同感です。

こういう時の対応は色々ありますが、私だったら新しいブランチを作成して対応します。
Gitでは好きなタイミングでコミット履歴を枝分かれさせるようにブランチを作成し、
いい感じに動く様になったら好きなブランチへ合流することが可能です。

Gitでは本番環境ですぐに動作する、何時でもリリース出来る状態のものをmasterというブランチ名で管理する慣習があります。
普段、エンジニア達はdevelopmentというブランチを作成し、そこにコミット履歴を重ねていきます。
リリースする直前でdevelopmentブランチのファイル一式をテスト、これでリリースしても大丈夫!となったら、masterブランチへ合流(マージ)させてリリースという流れになります。

チャレンジングな事をして既存の構成を崩したら動かなくなるかもしれない…
でも開発成功すれば超かっこいいクールなプロジェクトになるかもしれない…
こんな時は更に新しいブランチを作って、開発がポシャればブランチを捨てれば良いですし、
開発が成功すればdevelopmentに合流させれば良いのです。

まぁ、developmentを用意せずにmasterブランチに直接ぶち込む簡易的な開発手法もあるようですが…
とりあえず私と一緒にブランチを作成してみましょうか。

ブランチの作成/削除

Bash

1# 現在のブランチリストを確認する 2$ git branch 3* master 4 5# ブランチを作成する (現在のブランチと同じコミット履歴を用いて複製します) 6$ git branch development 7 8# developmentが作成された事を確認(今居るブランチは*マークでわかります) 9$ git branch 10* master 11 development 12 13# developmentブランチを削除 14# (コミット履歴が進んでいるブランチは-dでは削除出来ません、-Dが強制削除になります) 15$ git branch -d development 16Deleted branch development (was 0000000). 17 18$ git branch 19* master

ブランチの切り替え

Bash

1$ git branch 2* master 3 development 4 5# ブランチの切り替えにはcheckoutコマンドを利用する 6$ git checkout development 7Switched to branch 'development' 8 9$ git branch 10 master 11* development 12 13# 注意、編集中のファイルがあるとブランチ切り替えが失敗する可能性があります 14$ git checkout master 15Switched to branch 'master' 16 17$ git branch 18* master 19 development

開発が終了してdevelopment→masterに合流する

Bash

1$ git branch 2 master 3* development 4 5$ git checkout master 6Switched to branch 'master' 7 8$ git merge development 9 10# マージが成功したことを確認 (マージ失敗した場合はこういう表示にならない) 11$ git status 12On branch master 13Your branch is up to date with 'origin/master'. 14 15nothing to commit, working tree clean 16 17# 不要になったdevelopmentを削除(既にmasterに取り込まれているので-dでdevelopmentを削除できる) 18$ git branch -d development

投稿2018/02/21 05:30

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

olee46

2018/02/21 05:42

神回答ありがとうございます!とても分かりやすかったです! 無事developmentブランチを作成(とテスト削除)できました
apo

2018/02/21 07:23

わかりやすい
guest

0

ソースコードをガラっと変える場合(バグ修正ではなく、構成から変える場合)はどうしたらいいのでしょうか?

通常通りのgit add→git commit→git pushでいいのでしょうか。

はい、それで何も問題ありません。そもそも、Gitはその時点でのファイルのスナップショットをコミットごとに保存するようになっていて、「ファイル単位の変更」というのは表示時に推定しているだけです。

投稿2018/02/21 05:19

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問