2016-12-01 10 views
1

まず、私は言及する必要があります...私はGitの完全な初心者で、それを使用する方法です。だから私のここでの理解の欠如と裸。サーバーからマスターgit repoに再同期する方法は?

最近、私たちはまもなくライブウェブサイトにカスタマイズされたサードパーティの開発者を抱えていましたが、基本的に私たちからは消えています。彼らはGitを使っていました。しかし、オフラインになる直前に、彼らは私にGit Repoを転送しました。その時まで、私はGitを使ったことはなかった。時間の制約のため、ウェブサイトで必要とされる最終的な変更のほとんどを、サーバ上で直接実行し、実際のバックアップを途中で実行しました。ある時点で、私はサーバーをマスターに同期させようとしましたが、いくつかのファイルが過剰になる可能性があるため、私は拒否されました。私はいくつかのスレッドを読もうとしました、そして悲しいことに、私はGitでハードリセットを実行しました。私は復元を試みたが、それは私のgitの状況をリセットしていないようです。

ここで、SERVERで完了したすべての変更を行い、新しいGitマスターRepoを開始します。以前は存在していたブランチを一掃しても大丈夫ですが、サーバーを新しいGitリポジトリ(bitbucketで作成したもの)にリンクさせ、必要なコンテンツをすべて新しいリポジトリにプッシュする方法はわかりません。私はこれらのシーケンスが間違っていることを恐れています。「始める」必要はありません(ただし、1時間ほど前に私のサーバーの完全なマゼンタ2のバックアップがあります)。

違いがあれば、レポはBitbucketでホストされています。

私はSourcetreeのローカルインストールがありますが、実際に正しく使用する方法はわかりません。

古いレポについては、私はそれを削除しないで、私はSourceTree(私はおそらくジッパーし、完全に削除が完了した)でマスター/起源のレポのコピーを持っています。

一度、私はマスターを更新しました。これを別のバックアップ/ devサーバーにデプロイしたいと思います。以前のgitと同期していました。

何かすべてのヘルプが評価されます。

+0

あなたの質問は非常に混乱しています。問題の3つの主要なプレイヤー、つまり請負業者、現在の支部支店、そして何がリポジトリにあるのかが分かります。どの情報がどこにあるのか、何をしたいのかを私たちに伝えて、あなたの質問を更新してください。 –

+0

[Gitの最後のコミットを元に戻す方法は?](http://stackoverflow.com/questions/927358/how-to-undo-last-commits-in-git) – OldBunny2800

答えて

0

"git reset --soft"を使用すると意味が分かるのは唯一のことです。

ここにサーバー上で私がやることがあります。ここでは多くの仮定があります。

  1. あなたにも、「CD /パス/に/レポを使用してのBitbucketする請負業者のレポをプッシュするかもしれませんが、Gitのプッシュ--mirror [ビットバケット-URL]、およびベース、残りの
  2. これらの手順では、移動または追加または名前を変更する必要のあるディレクトリ以外に、本番サーバーのディレクトリレイアウトとリポジトリのレイアウトが同じであることも前提としています。
  3. 最後に、これらは、 'master'が同期先のbitbucketブランチの名前であると仮定します。

(ああ、「.gitignoreを編集」のための任意のプレーンテキストエディタを選択してください)。

仮定が保持する場合は、ここで私はあなたのmasterブランチに戻って本番サーバーを同期するために使用する一連のコマンドです:

cd /path/to/code/on/server 
touch .gitignore 
edit .gitignore   # set dir and file patterns you want to omit 
git init    # init is safe even if git repo already present 
git remote add origin [bitbucket-url] 
git fetch 

# The "soft" reset! Makes git think your work on the server 
# directly followed from latest commit on 'master': 
git reset --soft origin/master 

git add .    # adds all files from all sub-directories 
git status    # do things look reasonable? 
git diff origin/master # should see all of your work in "patch" format 

# If everything looks good, do the commit! 
git commit -m 'sync prod back to bitbucket' 

# And send your commit to bitbucket! 
git push origin HEAD:refs/heads/master 

ワン警告:あなたは.gitignoreに追加どのような注意が必要でファイル。そのファイルのパターンと一致するファイルまたはディレクトリは、gitによって完全に無視され、ビットバケットリポジトリに同期されません。

関連する問題