2017-06-22 8 views
0

Bitbucketにはリポジトリがあります。(ほぼ)同じBitbucketリポジトリを作成し、それらを両方とも同期させておく方法は?

私は、同じ内容から1ファイルを差し引いたものの、元のものの履歴がない別のものを作る必要があります。 これらのリポジトリは、元のリポジトリ上にある必要がある重要なファイルを除いて、今から同期する必要があります。

これを行うにはどのような方法が適していますか?

答えて

0

おそらく、重要なファイルに関して少しぎこちなかったです...しかし、ここにこのファイルなしで新しいレポを作成する戦略があります。あなたはオリジナルのリポジトリから引き出すことができますが、元のリポジトリからファイルを取り除く(または他の方法を引っ張って)場合、元のリポジトリからファイルを削除します:(... gitはコミット時に動作し、個々のファイルではないためです。

まずコミット/特定のブランチからのファイルと新鮮なレポします

# clone the repo into a new repo (just making it locally for now) 
git clone <url> newrepo 
# Move into the repo 
cd newrepo 
# Checkout the commit you want (e.g. a branch name called "mybranch") 
checkout mybranch 
# Delete the .git folder - this changes it from a cloned repo to just a bunch of files 
rm -rf .git 
# Now make this folder into a new repo 
git init 
# Now add this "pile of files" into the repo 
git add . 
# First commit 
git commit -m "First commit created from repo <url>" 

今、あなたはあなたがしなかった場合は最初のコミットの前に(あなたがこれを行うことができます取り除くしたいファイルを削除します)歴史の中でこれをしたい:

git rm somefile 
git commit -m "removed unwanted file" 

は今、リモートを追加(カジェd同期など)を元のURLに変更することができます。

git remote add sync <url> 

これで元のレポから引き出すことができます。しかし、あなたの "重要なファイル"を押し戻さないように注意する必要があります。ここの問題は、あなたが1つのレポで行うことは、他のレポに同期されることです(リモートの「同期」(元のレポ)に変更をプッシュすると、「削除された」ファイルがプッシュされます)。

もう一度.gitignoreにファイルを追加すると、これは同期した後に両方のリポジトリで取得されます...だから、この重要なファイルを別のリポジトリに完全に貼り付け、ユーザ彼らはそれを必要とする場合は、そのクローンを作成する必要があります...

注:あなたの新しいレポ使用git pull sync mybranchに元レポ/ mybranchからの変更をマージする

注:この引きを行うと(上記のように)しますあなたのローカル履歴ツリーがthリモート同期レポの履歴ツリー。だから、最初のプルの後もブランチには2つのコミットしか見えませんが、リモートの「同期」からgit log --graph --all --decorate --onelineというツリーを使って表示されます。

関連する問題