4

私はgitを初めて使用しますが、まだ多くの問題を抱えています。

私が取り組んでいるとしましょうa.cpp。でいくつかのコードを変更しましたa.cpp。そして、その変更はコミットまたはプッシュする準備ができていません。

その後、他の人もに変更を加えましたa.cpp

SVN / CVSでは、チェックアウトはマージまたは競合のいずれかを実行します。

私はそれgit pullが同じことをするだろうと思いました。

しかし、それgit pullはマージ/競合しないようです。これは正しい動作ですか?

また、git checkout単に書き直すだけa.cppで、すべての変更が失われます。

最新バージョンをプルしてマージ/競合を実行する簡単な方法はありますか?

4

2 に答える 2

5

引っ張る前に、変更を隠しておきます。次に、プルした後、隠しておいた変更をポップして、最新のコミットに基づいてリベースできます。

最初にすべての変更を隠します

git stash

を実行すると、隠し場所を表示できますstash show。以前に何も隠していない場合は、1つの隠し場所が表示されます。これで、変更を上書きせずにプルできます。

git pull

次に、変更をスタッシュから削除し、現在チェックアウトされているバージョンに適用します。

git stash pop
于 2013-03-13T00:34:36.203 に答える
0

もう1つの方法は、プッシュではなくコミットすることです。次に、リモートからリベースします。

于 2013-03-28T13:46:29.660 に答える