2011-12-16 23 views
18

Non sono sicuro di quale sia il termine esatto per questo problema. Fondamentalmente, ho bisogno di rimuovere alcuni file & directory sul mio repository remotocome eliminare i file nel repository remoto?

Ho un git repo locale & repo remoto github

  1. stesso avevo lavorato.
  2. Un amico ha fatto una richiesta di pull.
  3. Ho unito la sua richiesta (tramite interfaccia github)
  4. Ho apportato le modifiche.
  5. ho provato il codice e ha deciso di non prendere le sue modifiche (non dovrebbe essere fuse in primo luogo)
  6. sono ritornato di nuovo ad un precedente impegno
  7. apportato alcune modifiche
  8. spingere al server.

Ecco come il mio repository locale si presenta come in questo momento:

* 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 

posso cambiare il mio repo locale per 7d0566c. Non sono sicuro di dove punta la testa sul mio repository remoto.

Come rimuovere i file presenti sul repository remoto ma non sul repository locale?

Ovviamente, non vedo nessuno dei suoi file nel mio repository locale perché ho fatto un reset del mio HEAD a un commit precedente. Tuttavia, il repository remoto mostra ancora i suoi file. Quando commetto, commette bene.

Il mio flusso di lavoro è errato? Dovrei aver appena testato la patch al primo posto. Qualche suggerimento? Sono nuovo al controllo della versione. Grazie

+0

Non aggiungere/rimuovere i file su un computer remoto, come GitHub dal momento che è un repository nudo. Verifica se il refspec per github e il repository locale sono gli stessi eseguendo 'git rev-parse HEAD' e' git rev-parse origin/master' (se il tuo telecomando è denominato 'origin'). – fge

+0

Penso che sarà d'aiuto mostrare l'output di 'git log --pretty =" formato:% h% d "--graph --all' e spiegare da lì. – htanata

+0

Giusto. non aggiungere/rimuovere file. Ahem. Sono diversi. Come dovrei risolvere questo problema?Grazie – dvliman

risposta

37

tirare le modifiche dal server, poi fare un git rm sul repo locale, il commit delle modifiche, e spingere al server. I file saranno cancellati.

+0

c'è un modo semplice per rimuovere questi file dal mio repository locale? dici che ci sono centinaia di file? Grazie – dvliman

+0

@limaoit: non sono un esperto di Git, quindi probabilmente c'è un modo migliore, ma uno semplice sarebbe copiare la directory da qualche altra parte, estrarre dal server in modo che sia aggiornata, quindi eliminare tutto nel repo eccetto '.git', sposta tutto (eccetto' .git') dal tuo backup al tuo repository, commit e push. – Ryan

+0

È possibile utilizzare la shell per rimuovere i file. Ciò significa che puoi usare uno script di shell, trovare, globbing di file o qualsiasi altra tecnica di rimozione di massa che desideri. Quando hai finito, esegui "git add -A." dalla directory di livello superiore. Il flag -A indicherà a Git di notare i file che hai rimosso. – wadesworld

1

Suppongo che 18cea0f sia il luogo in cui si è verificata l'unione delle richieste di pull. Al fine di ripristinare che si fondono, si può fare:

git revert -m 1 18cea0f 

Si può leggere di più qui: http://progit.org/2010/03/02/undoing-merges.html

+1

L'ho fatto. Il mio repo locale viene ripristinato con successo. Non c'è nessun problema lì. Il repository remoto è quello che causa problemi. Contiene file da fc19ccf .etc ... – dvliman

+0

@limanoit Hai solo bisogno di trasferire le modifiche al repository remoto: 'git push origin master '. – htanata

+0

@htnata Sì, l'ho fatto. Questo è il motivo per cui ho fatto questa domanda. Il mio repository locale non contiene, ad esempio file A, B, C. Ma il mio repository remoto contiene i file A, B, C che sono l'effetto della fusione precedente. In realtà ho risolto questo problema riavvolgendo il repository. Elimina manualmente il file. e spingere il commit. Questo è abbastanza hacky. Mi chiedo se esiste una soluzione migliore a questo problema. – dvliman

Problemi correlati