0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

git initして git add * しようとしたら下位に既にgitがあったので、統合したい。

Last updated at Posted at 2019-10-02

ex) ~/myprojects/<新しく作ったgitのルート>/ でgit init して git add * したら、~/myprojects/<新しく作ったgitのルート>/AAA/ に既にgitがありますよと言われた。
これを、「AAA」のgitをなくして「新しく作ったgitのルート」のgitに統合したい。


##戦略
git subtree addを使えば他のgitをサブディレクトリにくっつけられるのでこれを使う。ただ、今回は既にサブディレクトリがある状態なので、そのままだと怒られる。
なので、一旦隣にリネームまたはどこかに移動してから行う。

###ここから下の前提
既にあったフォルダをAAAとする。新しくgit initしたルート直下にあるとする。
<新しく作ったgitのルート>にいるものとする。#cd <新しく作ったgitのルート>へのパス

git add でステージしてしまったものを綺麗にする

git addしていなければもうちょっと下からで良い。

git rm -rf --cached * 

ステータスを見ると

 git status

On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

	AAA/

###一旦コミットする。

git commit --allow-empty --allow-empty-message -m ""

など


既に戦略どうりにするつもりでgit add などでステージしてない場合はここからでよい。

###とりあえず名前を変える

mv AAA AAA_

###リモートに登録(XXX は作業用の適当な名前)

git remote add XXX  AAA_/

確認

git remote 
XXX 

###履歴ごと統合

git subtree add --prefix AAA XXX master

掃除

いろいろチェックして安心したら AAA_を消しましょう。(心配ならどこかに移動させておく)

rm -rf AAA_

リモートも消します

git remote remove XXX

これであとは普通にできまっせ。

例えば

git add *

など

何か素敵なことがしたい人は、git subtree add --helpなど読む。


今回
git merge
git fetch
git read-tree
git subtree merge
は使わなかった。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?