プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

Git次のファイルへのローカルの変更は、チェックアウトソリューションによって上書きされます

2つのブランチでファイルを変更し、ファイルをコミットまたは隠蔽せずにそれらのブランチを切り替えることはできません。これは、Gitがどの変更を保存し、どの変更を上書きする必要があるかがわからないためです。

このガイドでは、「次のファイルへのローカル変更はチェックアウトによって上書きされる」エラーとその意味について説明します。このエラーを修正する方法を理解できるように、例を見ていきます。

次のファイルへのローカルの変更は、チェックアウトによって上書きされます

Gitバージョン管理を使用すると、ブランチと呼ばれる個別の開発ラインを維持できます。 2つのブランチをマージしない限り、1つのブランチでの変更は別のブランチに反映されません。

ブランチに移動すると、履歴内の特定の時間にリポジトリを表示し、必要な変更を加えることができます。準備ができたら変更をコミットして、Gitがプロジェクトの進化を追跡できるようにする必要があります。

両方のブランチにコミットされていないファイル変更が含まれている場合、2つのブランチを切り替えることはできません。 Gitは、ファイルを保存するか、コミットの一部にするかを知る必要があります。これにより、後で参照したいコードを誤って上書きするのを防ぐことができます。

シナリオ例

README.mdという1つのファイルを含むリポジトリのクローンを作成します:

git clone https://github.com/career-karma-tutorials/ck-git

README.mdファイルの内容は次のとおりです。

# ck-git

私たちのリポジトリには、開発とマスターの2つのブランチがあります。ローカルの作業ディレクトリで、オリジンマスターブランチのREADME.mdファイルを変更します。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

# Career Karma Git

マスターブランチは、リモートリポジトリとは異なります。開発ブランチに切り替えて、READMEの内容を次のように変更します。

# Career Karma [Development]

次のコマンドを実行することで、開発ブランチでこのファイルを変更できます。

git checkout development
nano README.md

次に、マスターブランチに戻り、ブランチに加えられた変更をコミットして、リモートリポジトリにプッシュします。

git checkout master
git add README.md
git commit -m "docs: Update README"
git push

git checkoutコマンドを使用すると、マスターブランチに切り替えることができます。確認すると、リモートリポジトリには次のものが含まれています。

  • 開発ブランチの変更されたREADME.md
  • 1つのコミットの前にあるマスターブランチ

それでは、masterブランチでREADME.mdを再度変更しましょう。

# Tutorials

これは、両方のブランチにリモートマスターブランチ間の違いが含まれていることを意味します。次の変更を加えて、開発ブランチに切り替えてみましょう。

git checkout development

このコマンドはエラーメッセージを返します:

error: Your local changes to the following files would be overwritten by checkout:
    README.md
Please commit your changes or stash them before you switch branches.
Aborting

ソリューション

開発ブランチとマスターブランチにはコミットされていない変更が含まれているため、Gitはチェックアウトを続行できません。 Gitが続行した場合、マスターブランチのREADME.mdに加えたコミットされていない変更は保存されません。

このエラーは2つの方法で修正できます。まず、マスターブランチで変更をコミットできます。

git add README.md
git commit -m "docs: Add tutorials message to README.md file"
git push

これらのコマンドでは、README.mdファイルをステージング領域に追加し、すべてのファイルをステージング領域からコミットに追加して、変更をリモートリポジトリにプッシュします。

Gitには、変更を加えたREADME.mdファイルがどのように表示されるかが記録されています。

または、後で使用するために変更を隠しておくこともできます。これは、変更をコミットに追加する準備がまだできていないときに、後で変更にアクセスできるようにする場合に適したソリューションです。変更を隠しておくには、gitstashコマンドを実行します。

git stash save README.md

これにより、README.mdファイルが隠し場所に保存されます。このファイルに再度アクセスする準備ができたら、stashpopコマンドを使用してstashにアクセスできます。

git stash pop

このコマンドは、リポジトリ内のREADME.mdファイルを復元します。 「スタッシング」は、「後で使用するために保存する」という別の言い方です。スタッシュは、変更のコミットを作成しません。

上記のソリューションのいずれかを実行した後、開発ブランチに正常に移動できます。

git checkout development

このコマンドは、ブランチを「開発」に切り替え、ターミナルでのこの変更を通知します。

Switched to branch 'development'

問題は解決しました。

結論

Gitの「次のファイルへのローカル変更はチェックアウトによって上書きされます」エラーは、2つのブランチで変更をコミットまたは隠蔽せずに変更を加え、ブランチ間を移動しようとすると発生します。

この問題は、後で使用するために変更を隠しておくか、コミットに追加することで修正できます。

これで、プロのようにこのエラーを修正するために必要な知識が得られました!


  1. 音楽とローカルファイルをSpotifyにアップロードする方法

    Spotifyは、ほとんどの音楽ファンのニーズを簡単に満たすことができるトラックの膨大なライブラリを誇っています。しかし、あなたの好みがほとんどの人よりも少し折衷的である傾向がある場合、あなたが好む傾向があるあいまいなトラックを見つけることは、プラットフォーム上で保証されないかもしれません。ただし、Spotifyでは独自の音楽を追加してSpotifyプレイリストに含め、Spotifyがサポートするすべてのデバイスで簡単に聴くことができるので心配はいりません。この記事では、ローカルファイルをサービスに提供するプロセスについて説明します。 予備的注意 チュートリアルを開始する前に、いくつかの点を

  2. Android ファイルを Mac に転送できませんか?

    Android デバイスを Mac に接続できない場合の修正方法は次のとおりです。データを転送できませんか? Android ファイル転送が Mac で機能しない?これらの質問を常に自問するなら、あなたは一人ではありません!これは、多くの Mac ユーザーが直面する一般的な問題です。 Google は Android File Transfer という便利なツールを提供して、デバイスとシステム間で写真、動画、ファイルを転送しますが、あまり役に立たない場合があります。心配しないで。この問題を解決できるいくつかの簡単な解決策を試し、蓄積してきました。 すぐに解決策に飛びましょう! ステップ 1:U