2017-08-02 18 views
1

私はブランチに取り組んでいると言いましょう。それから、他の誰かが何かをマスターするまでプッシュします。それから、私はやり遂げられ、自分の仕事を習得させようとします。しかし、マージの競合があります。なぜなら、他の人が自分自身を押す前に、私が現在作業しているファイルのいずれかで何かを変更したからです。どんなGitコマンドを入力して、私の枝を彼の変更で更新し、私の現在の作業をそれに加えさせる。私が合併できるようにコミットが失われたり、私のunstagedな変更が削除されたりすることなく、これをどうやって行うのですか?私は毎回私のプロジェクトをこれで破壊します。これを達成するにはどのコマンドを入力すればよいのですか?私はgitチュートリアルを見て、git checkoutブランチ、git rebase masterに言った。これは私のプロジェクトを台無しにしました。助けて?Git rebasingブランチので、コミットとステージングされない変更は削除されず、失われません。

答えて

2

現在のブランチでgit stashを実行してみることができます。これは本質的にあなたの現在のステージのスナップショットをとり、安全な場所のどこかでコミットします(作業ディレクトリに対しても別のコミットを行います)。その後

、最新の変更をプル:

git pull origin master 

あなたはこれを行うときに、新しいコミットをしていた場合、あなたが最後にリモートmasterブランチと同期するので、マージの競合を得る可能性があります。あなたはまた、このことから、マージの競合を得る可能性があります

git stash apply 

最後に、経由スタッシュを適用します。今度はあなたの協力者から最新の変更を加えてください。ステージはあなたがそれを離れるときのものでなければなりません。

+0

私は自分の仕事を隠して、引っ張るまでコミットしません。私が引っ張った後、私は隠しを適用し、コミットします。もし私が隠れる前にコミットしてしまったら、私は何をするのですか?コミットに作業を隠し、それをコミットしないでください。 – user6358536

+0

私はこの後続の質問がどうなっているのかよく分かりませんが、コミットした場合は競合を解決する必要があります。未完のコミットは一種の一時的な状態とみなすべきです。コミットしないでください。または、それを完了して競合を解決してください。 –

+0

私は、量やリベースや隠しが解決できないマージ競合があったようです。他の人の変更を自分のコードに貼り付けてコピーします...それは正しいやり方ではないように感じました – user6358536

関連する問題