2011-12-16 8 views
18

この問題の正確な用語は何か分かりません。基本的に、私は リモートリポジトリのファイルを削除する方法は?

  1. は自分自身を働いていたgithubの

    でローカルのgitリポジトリ&リモートレポを持っているいくつかのファイルに私のリモートリポジトリ

    に&ディレクトリを削除する必要があります。

  2. 友人がプルリクエストを出しました。
  3. 私は彼のリクエストを合併しました(githubインターフェイス経由)
  4. 私は変更を引き出しました。
  5. 私は、コードをテストし、私は戻って、サーバーにいくつかの変更
  6. がプッシュメイド前回のコミット
  7. に戻った彼の変更(最初の場所でマージされていないはず)
  8. を取るしないことを決めました。

これは私のローカルリポジトリは、現時点ではどのように見えるかです:

* 7e143b1 (HEAD) 
|\ 
| * 18cea0f (origin/master, origin/HEAD, master) 
| |\ 
| | * fc19ccf 
* | | 6f3c58a 
|// 
* | 8d82486 
|/ 
| * d3ce65f (pre-install-activeadmin) 
|/ 
* 7d0566c 
* d1c77ab 
* 75ba704 
* 30dc67c (heroku/master) 
* f89b1f6 
* ea5e2db 
* 08931d6 
* 9773a6f 
* b636aba 
* cb6f8d4 

私は7d0566cに私の地元のレポを変更することができます。私はリモートレポの頭がどこに向いているのかわからない。

リモートリポジトリにあるがローカルのリポジトリにないファイルを削除するにはどうすればよいですか?

私のHEADを前回のコミットにリセットしたので、明らかに私のローカルリポジトリには彼のファイルはありません。ただし、リモートリポジトリにはまだファイルが表示されます。私がコミットするとき、それはうまくいっている。

私のワークフローは間違っていますか?私はちょうど最初にパッチをテストしたはずです。なにか提案を?私はバージョン管理が初めてです。ありがとう

+0

をあなたはそれが裸のリポジトリであるので、そのようなgithubのようなリモート上のファイルを削除/追加しないでください。 'git rev-parse HEAD'と' git rev-parse origin/master'(リモートの名前が 'origin'の場合)を実行して、githubとローカルリポジトリのrefspecsが同じかどうかを確認してください。 – fge

+0

'git log --pretty ="書式:%h%d "--graph --all'の出力を表示してそこから説明すれば助けになると思います。 – htanata

+0

右。ファイルを追加/削除しません。 Ahem。それらは違う。この問題をどのように解決すればよいですか?ありがとう – dvliman

答えて

37

サーバーからの変更を引き出します。ローカルのリポジトリでgit rmを実行し、変更をコミットしてサーバーにプッシュします。ファイルが削除されます。

+0

ローカルのレポからこれらのファイルを簡単に削除する方法はありますか?何百ものファイルがあると言いますか?ありがとう – dvliman

+0

@limaoit:私はGitのエキスパートではないので、おそらく良い方法がありますが、シンプルなものはディレクトリを別の場所にコピーし、サーバから取り出して最新のものにしてから、 '.git'を除いてrepo、バックアップからあなたのrepo、commit、pushにすべてのもの(' .git'を除く)を移動します。 – Ryan

+0

シェルを使用してファイルを削除できます。つまり、シェルスクリプトを使用したり、ファイルを検索したり、ファイルグロブなどを使用したり、任意の一括削除手法を使用できます。完了したら、 "git add -A"を実行してください。トップレベルのディレクトリから。 -Aフラグはgitにあなたが削除したファイルを通知するように指示します。 – wadesworld

1

私は18cea0fがあなたのプルリクエストのマージが起こった場所だと仮定しています。そのマージを元に戻すためには、あなたが行うことができます:

git revert -m 1 18cea0f 

あなたはもっとここで読むことができます:http://progit.org/2010/03/02/undoing-merges.html

+1

私はそれをしました。私のローカルレポが正常に復帰しました。そこに問題はありません。リモートレポは問題を引き起こすものです。それはfc19ccf .etcからのファイルを含んでいます... – dvliman

+0

@limanoitリモートrepoに変更をプッシュするだけです: 'git push origin master'。 – htanata

+0

@htnataはい私はそれをしました。それが私がこの質問をした理由です。私のローカルリポジトリにはファイルA、B、Cが含まれていませんが、私のリモートリポジトリには以前のマージの効果であるファイルA、B、Cが含まれています。 私は実際にこの問題を解決するために、レポをrecloningしました。手動でファイルを削除します。コミットをプッシュします。これはかなりハッキーです。この問題に対するより良い解決策があるかどうかは疑問です。 – dvliman

関連する問題