2017-04-12 10 views
0

私は 'git'にはかなり新しいですが、私は 'svn'で既に適度な経験を持っていますが、今まではどちらのシステムでもブランチを使う必要はありませんでした。git: 'dev'ブランチからのファイルで 'master'ブランチを更新するには?

私は私の最初の(小)共同プロジェクトに取り組んでいますし、そうdevブランチを作っているとdev枝の上に私の開発/テストの変更に取り組んできた(とレポでdev支店にそれらをアップロードしています) 。私の現在のバージョンのコードは、今度は新しいmasterバージョンになる準備ができています(その前は、次のdevリビジョンで作業しています)。

masterブランチ(これまで私が気づいていなかった新しいファイルを、ローカルでdevブランチにあるように)に追加しました。 。影響しない

は、私は今、devブランチから「myfileを」のバージョンとmasterブランチで「MYFILE」のバージョンを更新する必要があり、他の開発者が追加した「 theirfile」(また、のファイル "をmasterブランチのローカルコピーにダウンロードするのも理想的です。

私は当然のことながらこの問題に対処する必要があることを知っていましたが、この追加ファイルがリポジトリのmasterブランチに存在すると、もう少し複雑になります。

私は 'git'にまだあまりよく慣れていません。特に、私たちのコードリポジトリを誤って混乱させたくないので、リポジトリを更新するために必要なことをアドバイスしてもらえますか?

+2

「マージする」とは何ですか?チェックアウトしたいマスター(マージしたいブランチ)を作成してから、マージする(マージしたいブランチ)これにより、開発ブランチからマスターへのすべての変更が反映され、マスターにも変更が反映されます。後で、あなたがgitに精通しているときは、チェックアウトのリベースをしたいかもしれませんが、今のところ私はマージに固執するようアドバイスします。 –

+0

上記のファイルの履歴を構成するリビジョンを追跡できれば、それらのリビジョンに他のファイルがないと仮定してチェリーピックアップすることができます。あなたが試すことができる他のものは、他のブランチ( '' 'git checkout branch - ' ')を提供するファイルを"チェックアウト "し、gitはそれをあなたのインデックスに"追加 "現在のブランチ上に新しいファイルとしてコミットされ、他のブランチ上の他のリビジョンとは関係ありません)。 – eftshift0

+0

'git pull origin master' - 自動的にマージされます。 –

答えて

2

あなたはそのファイルでマスターブランチにマージしたいと思っています。 あなたが使用しているgitクライアントによっては、マージリクエストを送信して残りのチームがこの変更を確認できるようにすることができます。

あなたが編集した唯一のファイルである場合、または 'dev'ブランチのすべてのファイルがmasterの対応するファイルと同じか更新されていることを確信している場合は、次のコマンドを使用します。

git checkout master 
git merge dev 
git add '{your updated files}' 
git commit 
git push 
+0

ありがとうございます。私はちょうどこれが実際にこれを試みる前に(gitの私の理解に役立つ)うまく理解していることを確認できますか? 1。 2(マジックが起こる?) 3.指定したファイルを 'master 'のコピーに追加します 4.これらの変更をローカルにコミットします 5.これらの変更をレポ 上記は合理的な理解ですか(また、「魔法」の部分を理解するのに役立つかもしれませんか)。 – dave559

+0

それは絶対に正しいです。場合によってはブランチを切り替えるときにgit pullをしたいかもしれません。私は合理的にgitに新しいこともあり、git pullとgit pushが間違っていないようにするための最良のコマンドのようだ。あなたがコミットしたい時はいつでも、私は引っ張っておくことをお勧めします(あなたがブランチで働いている唯一の人ではない場合)。ローカルコミットを行った後、すぐにサーバーにプッシュします。 –

関連する問題