was Angenommen, du bist wirklich fragen, ist remote-Dateien von einem Git-Repository zu packen, ohne einen Arbeitsbaum Ihrer eigenen (oder einen Klon des Repository lokal), könnten Sie dies tun:
git archive --format=tgz --remote=<url-to-repo> master -- myfolder | tar zxvf -
Dies sagt, um eine gezippte Teer-Ball des Master-Zweig des Repository Leben bei <url-to-repo>
, sondern nur den Inhalt unter myfolder
. Piping, die durch tar
wird die Daten entpacken und in das aktuelle Arbeitsverzeichnis legen.
Wenn Sie tatsächlich versuchen, einen funktionierenden Baum zu verwalten und mit den anderen zwei Entwicklern zu arbeiten, dann geht das, was Sie tun wollen, wirklich gegen den Strich des Tools. Aber Sie müssten viel ausgeklügelter darüber sein, was Sie versuchen, zu erreichen, damit jemand einen guten Workflow-Vorschlag macht.
aktualisieren:
So klingt es, als ob Sie nur einen Ordner der Änderungen in einem verwalteten Arbeits Baum holen wollen. Tut mir leid, aber Git funktioniert nicht so. Wie ich in den folgenden Kommentaren in den Kommentaren sagte, verwaltet Git Bäume von Dateien. Es lässt nicht zu, dass ein Teil eines Baums eine Revision hat und ein anderer Teil eine andere Revision hat, wie Sie vorschlagen - vielleicht sind Sie ein früherer Benutzer von Subversion, wo dies möglich war?
Sie können einen Effekt erhalten, der dem ähnelt, was Sie möchten, aber Sie müssen Ihre Arbeitskopie ändern. Ich würde nicht commit die Änderung, es sei denn, Sie wollen verwerfen einen Ihrer Entwickler arbeiten.Man könnte dies zu:
$ git fetch
$ git checkout @{u} -- myfolder
git fetch
Ihre Remote-Referenzen auf den neuesten Stand bringen - es wird die neuesten Informationen von den Servern holen. git checkout @{u} -- myfolder
wird machen myfolder
aussehen wie das, was im Tracking-Zweig existiert. Dies hat zwei Folgen:
Sie haben nicht alle Änderungen auf Ihrem lokalen Niederlassung haben (und Sie wollte sie nicht, so dass in Ordnung ist), und
myfolder
zeigen als geändert, weil der Inhalt von myfolder
mit dem neuesten verfügbaren aus dem Remote-Repository aktualisiert wurde, aber es ist nicht das gleiche wie Ihre aktuelle Revision.
Um Ihre Arbeitskopie wieder normal, dies zu tun:
$ git checkout -- myfolder
Von dort rufen Sie bekommen Ihre Niederlassung up-to-date mit der Fernbedienung Ihres üblichen Mechanismus folgen (wahrscheinlich git pull
).
Dies ist jedoch wahrscheinlich nicht, wie Sie arbeiten möchten. Trotz Ihres Kommentars, "spielt keine Rolle", es spielt wirklich eine Rolle. Es gibt oft bessere Möglichkeiten, um Ihr Gesamtziel zu erreichen und Ihre Entwicklung zu verwalten, aber es erfordert Verständnis, was Sie versuchen zu tun. In dem Moment, was Sie vorschlagen wirklich geht gegen, wie Git soll funktionieren.
Also lassen Sie mich ein paar Dinge für Sie da draußen. Forschung mit Zweig Themen als eine Möglichkeit, die Entwicklungsarbeit, die getan wird, anstatt die Ordner für jeden Entwickler in der Struktur zu verwalten. Bei den Zweigen und dem Zusammenführen können Sie logische und logische Änderungen vornehmen, während Sie sie testen und für die Aufnahme in die Produktion freigeben.
Ein guter Anfang ist here. Es enthält eine beträchtliche Menge an Informationen selbst, und einige folgen auf Links zu mehrere verschiedene Arten von Git-Workflows. Der Ort, an dem Sie enden möchten, ist , wo es ein Commit gibt, das die Version darstellt, die Sie tatsächlich in Produktion einfügen, ohne die Arbeit zu zerstören, die andere für Sie tun. Im Idealfall würden Sie das, was in die Produktion geschoben wurde, auf eine sinnvolle Art und Weise taggen, .
Ich weiß, niemand mag es zu hören, aber Training kann in Ihrem Fall sehr hilfreich sein. GitHub bietet einige free online classes sowie einige andere Ressourcen. Aus Erfahrung zu urteilen, sobald Sie begreifen, wie Git funktioniert und die Probleme, die es löst, werden Sie mit einem viel besseren Workflow enden.
Ihre Frage ist nicht ganz klar, . Angenommen, Sie haben die Ordner 'dev1',' dev2' und 'production'. Fragen Sie, wie Sie alle Änderungen von 'production' aus einem anderen Zweig übernehmen können, oder fragen Sie, wie man den Inhalt von' production' im Wesentlichen auf einen der Dev-Ordner setzt? Wie auch immer, die Art, wie Sie sich diesem nähern, klingt wie Ihre Arbeit gegen das Werkzeug. – jszakmeister
ok, ich werde umformulieren ... Ich habe ein Projekt, einen Zweig und zwei Entwickler und zwei Ordner im Projekt. Jeder Entwickler arbeitet an einem Ordner. beide machen Änderungen und schieben sie in den Zweig. Ich möchte nur Änderungen von einem Ordner in meine lokale Maschine ziehen – fredy
Verwenden Sie Git, um eine Arbeitskopie zu verwalten? Oder suchen Sie wirklich nur den Inhalt eines Ordners im Repository auf Ihren Rechner? Gemessen an Ihrem Kommentar zu Pherric Oxide, klingt es wie letzteres. – jszakmeister