3

私は同僚と Android プロジェクトに取り組んでおり、彼は最近 https://github.comに GitHub リポジトリをセットアップしました。最後に、GitHub for Windows を 64 ビット Windows 7 マシンにダウンロードしてインストールしました。次に、GitHub のリポジトリに移動し、[Clone in Windows] ボタンを使用してプロジェクトを複製しました。

Windowsでクローン

すべてが順調に進んでいるように見え、プロジェクトは

C:\Android\git-repos\OurProject

私のマシンで。次に、ファイルにいくつかの変更を加えました

C:\Android\git-repos\OurProject\Host\Android\src\com\ourproject\client\SettingsActivity.java

次に、変更されたファイルが (いくつかの変更されたビルド ファイルと共に) 私のマシンにあるバージョンの GitHub にこのように表示されることを確認しました。

http://s11.postimage.org/k8o91hq37/changes_on_github.png

「 」ファイルを選択SettingsActivity.javaし、簡単な説明を入力して「Commit」ボタンを押しました。すると、以下の画面が表示されました

http://s16.postimage.org/yier6czf9/unsynced_commits.png

次に、「同期」をクリックすると

同期

行った変更がマスター リポジトリにプッシュされることを期待して、次のメッセージを受け取りました。

unstaged changes
You cannot sync with unstaged changes. Please commit your changes and try again.

このエラー メッセージが表示されるのはなぜですか?

このスレ見てたけど

github のステージングされていない変更は何ですか?

そして、次の手順を実行する必要があるようです

  1. git追加
  2. gitコミット
  3. ギットプッシュ

しかしこのスレから

GitHub for Windows の「同期」は何をしますか?

「同期」ボタンが 3 つすべてを行うように見えるかもしれません。そのため、コミットを正確にステージングする方法がわかりません。(前のステップで) 変更をコミットしたという事実は、それらをステージングしたことを意味し、それが同期のオプションが提供された理由だと思いました。この問題を解決するための助けをいただければ幸いです。

PS: GitHub サポート チームにも連絡を取り、その解決策を以下に掲載しました。

4

2 に答える 2

7

VonCが書いたものに追加するだけです...

「同期」ボタンを押すたびに、次の画面が表示されました

ステージングされていない変更

彼が提案したことを読んだ後、「Open Shell」をクリックして入力しました

git stash

そして、それはこのようなものを表示しました

パワーシェル

この後、「同期」ボタンを押すことができ、正常に同期できました。

VonCのコメントを読んだ後に追加

しかし、そのファイルをリポジトリに正常に追加した後、他の 2 つのビルド ファイル (「BuildConfig.java」と「project.properties」) が GitHub for Windows に表示されないことに気付きました。だから、VonCの提案を読んだ後、私はタイプした

git stash pop

以前に開いたシェルで、2 つのファイルが GitHub for Windows に再び表示されました。

GitHub サポートからの連絡を受けて追加

残念ながら、ステージングされていない変更またはファイルがある間は同期できません。ただし、回避策が 1 つあります。

  1. 作業ディレクトリ内のすべてをコミットします (「WIP」または「Work in Progress」の略語のようなコミット メッセージを使用します)。
  2. 同期。
  3. 「WIP」コミットを選択し、「このコミットにロールバック」ボタンをクリックします。

同期すると、ローカル コミットが取得され、サーバーから取得したコミットの最後に配置されます。

于 2012-10-29T07:12:18.097 に答える
1

ファイルをコミットしましたが、すべてのファイルではありません。
進行中の変更を含む作業ツリーと同期することはできません。上記の変更は、隠しておく必要があります (「 GitHub - Unsynchronized Commit?
」 によると、コマンドラインのみ)、または最初にコミットする必要があります (このgist で説明されているように)。

于 2012-10-29T06:47:47.080 に答える