3

GitHub に問題があります。

GitHub のリモート リポジトリを使用してコピーをサーバーにダウンロードし、ソフトウェアをインストールしますが、各サーバーは、各インストールがパーソナライズされているため /www/inc/config.inc.php、他のフォルダーなどの名前のファイルに変更を加える必要があります。www/images/

ファイルの内容が元のもの、または GitHub にあるものに変更されるため、コマンド " git pull" を呼び出して、さまざまなサーバーのインストールを GitHub と同期して新しい変更またはバージョンを取得すると、問題が発生します。GitHubは、最初に実行した各サーバーのファイルとフォルダーを同期しないように、コマンドを新規インストールする ように言いたいと思います。www/inc/config.inc.php
www/inc/config.inc.php/www/imagesgit clone

4

2 に答える 2

2

私が正しく理解していることを確認するために、最初にあなたの問題をもう一度述べたいと思います。

インストールを実行するか、存在する場合は更新する必要があるサーバーがあります。github にインストール ファイルがあります。

新規インストールの場合は、github から複製してから、/www/inc/config.inc.php ファイルと /www/images フォルダーを変更します。

更新を実行するとき、それらの更新を github にプッシュし、それらの更新を github からさまざまなサーバーにプルしたいが、ローカルの変更をマージしたり上書きしたりしたくありません。

シナリオが間違っている場合はコメントしてください。

上記が正しいと仮定すると、これを達成するためのアプローチは次のとおりです。

リポジトリをローカル サーバーに最初に複製するときは、ローカルに変更を加える前にブランチを作成します。作成したブランチに常にローカル リポジトリを保持します。

#clone the repo
git clone git://github.com/you/yourproject.git

#create and checkout a local working branch
git checkout -b workingBranch

#make your changes to configs and other directories freely
...
#when you're done, add and commit those changes
git add .
git commit

ローカル マシンにプルしたい更新がある場合

#checkout the master branch
git checkout master

#pull to get the latest code
git pull origin master

#checkout the workingBranch again
git checkout workingBranch

#rebase to get the new changes on that branch
git rebase master

これにより、ブランチで行った変更が一時的にロールバックされ、マスター ブランチから最新のコミットが取得され、新しい変更の上にコミットが「再生」されます。

于 2012-04-11T12:26:24.120 に答える
0

ライブ サーバー ツリー ( /www) で直接変更を行い、それらをコミットしてプッシュ バックする場合を除き、 から直接プルする必要はありません/www。つまり、Git リポジトリである
必要はありません。/www

サーバー上のそのレポのクローンを取得し、ライブ環境で必要なものを再同期できます (まだサーバー上にあります)。
つまり、git リポジトリとライブ ツリーを厳密に分離します。そうすれば、何を更新する必要があるかを正確
に制御できます。

于 2012-04-11T07:35:05.090 に答える