Open Yuya-Furusawa opened 2 years ago
今回のでディレクトリ構成ではrootディレクトリであるyourcar
以下のreact-car-app
・nestjs-car-app
はそれぞれGit管理対象になっていた
(つまりそれぞれの子ディレクトリに.git
ファイルが置かれている)
この場合、通常通りpushしてもエラーもしくは警告が出る
子ディレクトリはsubmodule
と扱われる(多分)
.gitファイルを削除する
$ git rm .git
参照
git clone [repository URI]
するとディレクトリが作成される
$ mkdir Example
$ cd Example
$ git clone git@github.com:Yuya-Furusawa/react-nestjs-full-webapp.git
$ ls
rect-nestjs-full-webapp
コンフリクトが発生するということは、「共通の元の状態」があり、そこから「コミットを生やしたブランチ」「ブランチ切ってコミット生やしたもの」が生まれ、それらがコンフリクトするということ
merge.conflictstyle=diff3
という設定は、「共通の元の状態」「コミットを生やしたブランチ」「ブランチ切ってコミット生やしたもの」3つを表示する
参照
git pull
をしたときにfast-forwardできるような状況のみmergeを行う。fast-forwardできなければfetchだけに留める(なので、ローカルブランチには何の影響もない)
新たなコミット生やしてしまっているのにpullしてしまった、みたいな状況を回避する
参照
リモートでブランチが削除されてもローカルには残ってしまう。
残っていても別に大きな問題は無いが、メモリを圧迫する可能性がある。
毎回git fetch --prune
をすればよいが面倒なので、以下の設定をしておくことでfetchやpullのたびに毎回pruneしてくれる
参照
発生した事象
発生原因
main
だが、ローカルのGitではデフォルトブランチはmaster
のままとりあえずの解決策
master
にpushmain
ブランチをpullするmaster
をmain
にmergeするmergeする際に発生した別の出来事
通常mergeする場合は共通の祖先を持ったブランチ同士をmergeする しかし今回はfirst commitした際に作成されたブランチ同士なので、共通の祖先が無い GitHub上では"There isn’t anything to compare. master and edit_branch are entirely different commit histories."というメッセージが出てきてcompare&mergeできない この二つはそもそも何の関係性も持たないので、remote(Github上)では、比較するなんてことはできません。ということ
したがって以下のようなmergeコマンドを叩く必要がある
そもそもどうすればよかったのか
他の解決策
git config
でデフォルトブランチを変更する$ git config --global init.defaultBranch main
$ git branch -m master main
参照