リポジトリとは?Gitにおけるpushとpullとは?
リポジトリとは?リポジトリは、チームメンバーがGitHubのバージョン管理メカニズムを通じて常に修正・取得するコードの保存場所です。
「pull」は、リポジトリの最新バージョンをPycharmなどのローカルストレージ/IDE(統合開発環境)に取り込むことで、その後コードを変更したり、機能を追加したりすることができます。作業が完了したら、変更内容をリポジトリに「push」して保存・追加します。他の人もコードにアクセスできます。
「次のファイルへのローカルの変更はマージによって上書きされます」の解決策
対処法1: pullを強制してローカルの変更を上書きする
最初の方法は、pullを強制してローカルの変更を上書きことです。これにより、コンピューターで行ったローカルの変更がすべて上書きされ、リポジトリ内のバージョンのコピーが表示されます。IDEで次のコマンドを実行する必要して下さい。
- git reset — hard
- git pull
その後、「次のファイルへのローカルの変更はマージによって上書きされます」が解消されたかどうかを確認します。
対処法2: 両方の変更を保持する
ローカルで行った変更とリポジトリ内の変更の両方を保持したい場合は、変更を追加してコミットします。IDEで次のコードを実行して下さい。
- git add $the_file_under_error
- git commit
- git pull
対処法3: 両方の変更を保持するが、コミットしない
開発者がコードの一部を修正中であるために、コミット準備ができていないことがあります。この場合はコードを元に戻して安全に変更を保管し、リポジトリからバージョンを取得します。
- git stash save –keep-index
または
- git stash
- git pull
- git stash pop
ストアに入った後に何か問題が発生した場合は、通常通り解決する必要があります。以下のコードも使用できます。
- git stash apply
マージが適切な選択肢でない場合は、リベースをご検討下さい。リベースの場合は、コードを次のように変更します。
- git stash
- git pull –rebase origin master
- git stash pop
対処法4: コードの一部を変更する
コードのすべてではなく一部のみを変更したい場合は、上書きしたくない部分をすべてコミットしてから、対処法3を実行します。リポジトリに存在するバージョンを上書きしたい変更を行うには、次のコードを使用します。
- git checkout path/to/file/to/revert
または
- git checkout HEAD^ path/to/file/to/revert
また、ファイルがステージングされていないことも確認する必要があります。
- git reset HEAD path/to/file/to/revert
- git pull
最後に
以上、Gitで「ローカルの変更はマージによって上書きされます」を解決するのによく使われる方法をご紹介しました。このエラーを解決するその他の有用な方法がございましたら、コメント欄でお知らせ下さい。