要するに:
新しい git リポジトリgit pull
のリモート ブランチからコードをプルした後、コードをリセットする前の状態に戻すことはできますか?
長い話:
スクリプトを含む 2 つのフォルダーがあり、1 つのフォルダーは他のフォルダー内の別のバージョンのファイルを表します。バージョン管理を適用するには、他のフォルダーと比較してリビジョンが少ないフォルダーを使用して github に git リポジトリを作成することから始め、両方のフォルダーを表す同じ内容の 2 つのブランチを作成します。
最新のリビジョンを持つフォルダーをリモート ブランチに同期するには、そのフォルダーで次の操作を行います。
git init
git remote add origin [GITHUB_REPO]
git pull origin [BRANCH_NAME]:[BRANCH_NAME]
git add .
git commit -m "Latest revision."
git add .
以前にワークフローを数回テストしましたが、後で実行する直前にgit status
変更が表示されず、追跡されていない新しいファイルのみが表示されることに気付くまで、何も問題はないようです。
git pull
一部のファイルがリモートで上書きされることに気付いたので、実行する前の状態に元に戻す必要がありますが、これpull
が最初のアクションであり、その前にコミットがないため、前の状態にリセットすることはできませんpull
。
これは次の結果ですgit reflog show
。
edbfd0d HEAD@{0}: commit: Import code from development environment.
da39602 HEAD@{1}: checkout: moving from master to development
私がやったことは次のとおりです。
git reset HEAD@{1}
そして、これは問題を解決しません。最後のコミットを元に戻すだけで、上書きされたファイルはgit pull
まだ戻ってきません。役に立った場合、サーバー上の git のバージョンは 1.7.1 で、私のローカル マシンでは 1.8.2.1 です。彼らの行動が異なるのも不思議ではありません。
--
さらに調査git pull
した結果、サーバーでの の動作がローカルの開発マシンとは異なることがわかりました。サーバーでは自動的にマージされるようですがgit pull
、私のローカル開発では、マージ時に上書きされる可能性のあるファイルがあることがわかります。
git pull
これにより、サーバー内のファイルは、追跡されていないファイルを含む既存のファイルで改訂の少ないバージョンを自動的に使用しますが、ローカル開発では、変更されたファイルを追加して更新されたバージョンを使用できます。