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

Git:フォースプル

Gitは、保存されていない、または追跡されていない変更がマージ操作によって上書きされる場合に、ファイルをローカルマシンにプルすることを防ぎます。 force pullメソッドを使用して、Gitにローカルコンピューターで受け取りたい変更を強制的にプルさせることができます。

このガイドでは、例を参照して、Gitリポジトリのコンテンツを強制的にプルする方法について説明します。 git pullコマンドとfetchコマンド、およびリセットオプションを使用して強制的にプルする方法について説明します。

プルとは何ですか?

Gitプル操作は、リモートリポジトリからすべてのメタデータとファイルをダウンロードし、取得されたデータに基づいてローカルリポジトリを更新します。

プルは、ローカルファイルをリモートバージョンのリポジトリと一致させるために使用される方法です。他の誰かがリモートリポジトリに加えた変更をダウンロードする場合は、リポジトリをプルする必要があります。プルは自動的には行われません。

上書きされる可能性のある追跡されていないファイルがある場合、プルは発生しません。これは、Gitリポジトリに追加されておらず、プルが発生した場合に置き換えられるファイルがローカルブランチにあることを意味します。

プルによって上書きされるローカルマシンに未保存の変更がある場合、リポジトリをプルすることはできません。

Git:フォースプル

Webプロジェクトのコードを含むck-gitというリポジトリに取り組んでいます。共同編集者がREADME.mdというファイルを更新しました。マシン上のそのファイルを更新し、変更をリポジトリにプッシュしていません。

変更をプルしようとするとどうなるか見てみましょう:

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

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

git pull

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

error: Your local changes to the following files would be overwritten by merge: README.md
Please, commit your changes or stash them before you can merge.

3つのオプションがあります。変更をコミットしたり、隠したり、Gitに変更を強制的にプルしたりすることができます。これらはファイルを上書きします。

行われた変更をフェッチし、リポジトリをリセットしてそれらの変更を表示することで、Gitに変更を強制的にプルさせることができます。 gitfetchコマンドを使用して変更をフェッチすることから始めましょう。

git fetch --all

このコマンドは、リモートリポジトリに加えられた変更のすべてのメタデータを取得します。次に、現在のブランチをバックアップします。これは、コードが上書きされたときに作業内容が失われないようにするためです。

gitbranchコマンドを使用してブランチをバックアップできます。

git branch backup

このコマンドは、「バックアップ」と呼ばれる新しいブランチを作成します。バックアップブランチが配置されたので、リポジトリをリセットしてリモートリポジトリの内容を表示できます。

gitresetコマンドを使用してリポジトリを更新します。

git reset --hard origin/master

–hardオプションは、リモートリポジトリからすべてのファイルをダウンロードし、プロジェクトのローカル作業コピーに追加します。これにより、行った変更が上書きされます。

origin / masterステートメントは、取得するブランチを参照します。 「origin」リモートリポジトリから「master」ブランチのコンテンツをダウンロードしています。

別のブランチ名またはリモート名を持つリポジトリを使用している場合は、次の式を使用して、resetコマンドの使用方法をガイドできます。

git reset --hard <remote>/<branch>

git resetコマンドは、リポジトリをフェッチした最新のコミットにリセットします。

コミットされていない変更の保存

gitstashコマンドを使用して行ったコミットされていない変更を保存できます。このコマンドを使用すると、コードを後で「隠して」おくことができます。コードの隠し場所を作成しましょう。

git stash

リポジトリに加えたすべての変更は、スタッシュに保存されます。これらの変更を再度処理する準備ができたら、隠し場所を「ポップ」できます。

git stash pop

git stashを使用した保存の詳細については、gitstashチュートリアルをご覧ください。

結論

Gitリポジトリにリモートリポジトリからコンテンツをプルさせることができます。これを行うには、リポジトリのコンテンツをフェッチする必要があります。リポジトリをフェッチしたら、コードベースで使用するリモートリポジトリのブランチへの変更をリセットできます。

これで、プロのようにGitプル操作を強制するために必要な知識が得られました!


  1. GitとGitHubの使用を開始する方法

    GitHubは現在、世界最大のオープンソースプロジェクトのホストです。 Atomテキストエディター、GoogleのTensorFlow、FacebookのReactなど、人気のあるGitHubページの例はたくさんあります。ビッグデータ、人工知能、モノのインターネットに関する高度なプロジェクトを収容することで最もよく知られていますが、アニメーション、絵文字、ゲーム、およびより単純なソフトウェアも見つけることができます。この手法は、ソフトウェアとアプリを除いて、「トレント」にいくぶん似ています。 GitHubの探索を始めたばかりの場合は、急な学習曲線があります。そのため、GitHubの世界を優し

  2. 「致命的:OriginがGitリポジトリではないようです」エラーを修正する方法

    Gitは分散バージョン管理システムであり、主にソフトウェア開発中のソースコードの変更を追跡するために使用されます。 GitHubは、Gitを使用したバージョン管理のためのオンラインホスティングサービスです。これらのサービスは両方とも、ソフトウェア開発で広く使用されています。ただし、ごく最近、ユーザーがMacターミナルで「git」コマンドを実行できないという報告が多数寄せられています。 この記事では、エラーがトリガーされる理由について説明し、問題を修正するための実行可能な解決策を提供します。競合を避けるために、ガイドに注意深く従ってください。 「致命的:「origin」はGitリポジトリでは