
gitの使い方になれていなくてよくわからないので教えてください
最初に develop branch を clone してリポジトリ作成
ローカルの develop ブランチで作業
ひととおり作業完了したところで
リモート (bitbucket) で feature/xxx とか適当にブランチをきって
git fetch && git checkout feature/xxx
でリポジトリの名前をかえてから
git add xxx
で反映させるファイルを選んで
git commit -m 'コメント'
でブランチの中身を変更して
git push
してプルリクエストをしたんですが
そのまま次の作業を feature/xxx のブランチままやってしまって
リモート (bitbucket) で develop から feature/yyy というブランチをきって
git fetch && git checkout feature/yyy
でローカルの名前をかえようとしたところ
error: Your local changes to the following files would be overwritten by checkout:
となってローカルブランチの名前を変更できなくなりました
1度ファイルを退避させてから pull して変更を破棄するしかないでしょうか
あと本来 git ってどういう手順で使うのが正しいのでしょうか
まだそれぞれのコマンドが何をするのかのイメージもあいまいで
clone: データとブランチ名をローカルにもってくる
branch: 新しいブランチ名を作る
fetch: リモートで作ったブランチ名を origin(ローカルにあるリモートのキャッシュみたいなの?) にもってくる
checkout: ローカルのブランチ名を変更する
pull: リモートのデータをローカルにもってくる
commit: ブランチに新しいデータを反映させる
push: データをリモートに反映させる
ぐらいの認識なんですがなんで名前を変更するだけの checkout ができないんでしょうか
Windows でいうところの他のプログラムが使っているため変更できません みたいな感じでしょうか
clone pull とあと使ったことがないけど merge もどう違うのかよくわかってないんですよね
追記:
すいません
やっぱり何も解決してなかったのでもうちょっと回答を待たせてください
作業中のファイル内容は一切変更せずにコミット履歴だけ特定のブランチのものに変更することはできないでしょうか
(modifyがちらばってるけどcommitはできる状態)
作業中に急遽別の作業がはいった場合にあきらかに作業中の内容と依存関係がないとわかってるとき
動作中のテスト環境を壊さずにそのまま動作テストしてコミットプッシュしたいのです
あと細かくコミットしすぎたのでコミットまとめようとして間違ってブランチ前のコミットまで消したときにコミット履歴だけ戻したいとか
追記:
案の定 docker を起動したままデータごとブランチをきりかえたところ docker コンテナが消せなくなってトラブルにはまってしまった
docker でウェブ開発をしてる人はどうやって git でブランチをきりかえてるんでしょうか
docker の設定ファイルやマウントしてるフォルダごとデータが変更されてしまったら
毎回 docker の設定からやりなおしになるしイメージファイルも戻ってしまうので
データベースのマイグレーションや Gem のインストールをしなければいけなくなるし…
絶対こんな効率悪いことはしてないと思うんですけど docker も git も初心者なのでどう開発環境を作っていいのかまったく分からないです…

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/08/09 09:49 編集
2018/08/09 09:52
退会済みユーザー
2018/08/10 04:56
2018/08/10 05:09
2018/08/16 15:07