2012-03-27 9 views
0

ノートパソコンとメインコンピュータの同期のためにVCSを使用して解決しました。その時、私はbzrが大好きだったので、私はそれを使いました。ワークフローは簡単だった - メインマシン上で、私は近くのノートPCの外観を検出するスクリプト、および実行され、次のステップを持っていた:gitの2つのリポジトリ間で適切なワークフローを設定することは可能ですか?

  • bzrが、ノートパソコンへ
  • bzrの更新
  • はbzrプッシュ
  • SSHを引きます

私はゆっくりとgitに向かっています。最後の理由は、Githubとgitの優れたスピードです。しかし、私はgitで同じワークフローを設定することに失敗しました。まず、チェックアウトされたリポジトリにプッシュすることを拒否しました。私はreceive.denyCurrentBranch = "warn"でそれを解決し、git reset -hardを実行しました。しかし、この方法では、彼らがコミットされていない場合、私は私のラップトップで行った変更を失う。私は "git reset --merge"を使ってみましたが、(bzrと違って)衝突するファイルのいくつかをマージすることを拒否しました。

gitでこれらの問題を解決する方法はありますか?

答えて

1

これは完全にgitで実行できますが、自分の環境を完全に記述していない(「なぜ起源はどこですか?」)か、bzrとgitの間で混乱しているようです。 「メインコンピュータ」(それがメインのレポを変更するとレポを「裸」、または第三の原点レポを持っていないことをお勧めします)で

git commit -am "Auto committing"

の必要はありませんここを押す。

は、ノートパソコンへのSSH:

git pull <main_computer's remote> master

これはもちろん、あなたが同じ枝、すなわちマスターの両方、現在の状態で提供されます。より安全に行うためには、より洗練された方法がありますが、2台のマシンと3台目のマシンのない最も簡単なケースでは、これが必要です。最後に、衝突のマージ戦略を設定できます。git help merge

+0

私が(rep1などの)repoにコミットされていない変更がある場合、gitは "あなたのローカル変更を上書きします"と言います。これを回避するにはどうしたらいいですか? – Rogach

+0

@Rogach 'git commit -am"何でも "右に引っ張る前に –

+0

あなたは変更を「隠す」ことができます。その後、プッシュして、隠し変更をマージしようとします。 'git help stash'を参照してください。 –

関連する問題