Help us understand the problem. What is going on with this article?

git rebaseがうまくいかなかった時の話

More than 3 years have passed since last update.

なかなかなれないgitの操作
rebaseを行おうとしたら怒られました。

今回はdevelopが更新されたのでそれを自分のbranchに取り込むために
rebaseをやろうとしたときのお話です。

結論から言うとgit rm --cached ...
gitの管理から外していたのが原因
なので.gitignore を途中で変更したりすると同じような
問題が起きることがあるみたいです。

今回は

git rebase develop

を行うと以下のようなエラーが出ました。

First, rewinding head to replay your work on top of it...
Applying: Add audit
Using index info to reconstruct a base tree...
M       hoge.rb
Falling back to patching base and 3-way merge...
error: Your local changes to the following files would be overwritten by merge:
        fuga.rb
        piyo.yml
Please, commit your changes or stash them before you can merge.
Aborting
error: Failed to merge in the changes.
Patch failed at 0001 Add audit
The copy of the patch that failed is found in: .git/rebase-apply/patch

When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".

commitかstashしろよと言われるのですが
できなくて困りました。

今回の原因
fuga.rbとpiyo.ymlは中身が自動生成される部分があるもので
毎回はpushしたくなかったのでgitの管理から一時的に外していたこと。
なので以下のようにgitで管理されているファイルを確認すると

git ls-files -v | grep config
.
.
.
H spam.rb
S fuga.rb
H ham.rb
H eggs.rb
S piyo.yml
.
.
.

というようになりました
先頭にSがついているものはgitの管理から外されているということです。
結果的に管理されている状態に戻して解決

git update-index --no-skip-worktree fuga.rb
git update-index --no-skip-worktree piyo.yml

結論。悪いのはいつも自分。

結局、develop側からはfuga、piyoが変更されているのに
commitされていないように見えて、
自分のbranchではgitから見えなくしているからcommitもstashもできないのが悪かったみたいです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした