私はドキュメントラテックスソースを追跡するためにGitを使用しています。マスターブランチをエンドユーザーのリリースに適したドキュメントで一杯にしたいので、誰かが何かを必要とするときは、マスターブランチに切り替えて、ドキュメントをコンパイルして配布することができます。
マニュアルのメジャーアップデートが必要な場合は、新しいブランチを作成します。しかし、マニュアルが承認されると、マスターにマージする必要があります。 branchからmasterにマージするとき、Gitにコマンドを渡して、「マージを忘れて、 branchのファイルをmasterのファイルに上書きします。 "これを行う方法はありますか?具体的には、毎回マージツールを開かないようにしたいと思います。前もって感謝します。
master
を無視するには、branch
をチェックアウトしている場合:
git merge master --strategy=ours
http://schacon.github.com/git/git-merge.html
「コンピューター言語学者」がここでコメントしたように、これは「それが新しい独立したファイルへの変更を持っている場合でも、「マスター」からのすべてを無視します」。したがって、OPではなく、OPが「マージを忘れる」とは言わないほど安全なマージが必要な場合は、「コンピューターリンギスト」からのこの優れた安全なコマンドを使用し、さらに彼のコメントをアップして、信用を得ます。
git merge -s recursive -X theirs branch
Gitのバージョン1.7.1では、「-Xtheirs」を使用してブランチ自体にマージできます。
たとえば、masterブランチで開始する場合、masterで開始します
git checkout -b editBranch
-- edit your files --
git add .
git commit -m "Updated the files"
git checkout master
git merge -Xtheirs editBranch
私がこれに基づいてこれを行うことを見たもう1つの方法 この投稿 は、editBranchをハードリセットすることです。例えば:
git checkout -b editBranch
-- edit your files --
git add .
git commit -m "Updated the files"
git checkout master
git reset --hard editBranch
この2番目の方法の方がいいかもしれませんが、まだ十分に遊ぶ機会がありません。
私たちは「私たちの」マージ戦略でこれを行うことができると思います:
git checkout branch
git merge -s ours master
しかし、これはあなたが望むことを正確に行うわけではありません:current作業ブランチbranch
の内容を上書きし、あなたがしたいことは同じ内容をmaster
に取得します。あなたが本当に望んでいるのは、マージ戦略theirs
です。そのために、私は この同様の質問 にそれを行う方法を指摘します。実際には、master
をリセットしてbranch
を指すようにします。