2011-08-21 6 views
0

私はローカルマシン上でマスターコードの最新バージョンを取得しようとしていますが、ツリーの後の部分で行われている現在の作業は削除されません。これをgitでどのように達成するのですか?私のコードの最後のバージョンをgitで入手しようとしています

enter image description here

私は私のローカルマシンが、それ以上のマスターバージョンで起こっているそれらの変更を削除せずに「新規アイテム」バージョンで、コードを持っていると思います。

答えて

0

開いているエディタを閉じると、ファイルをその下から変更すると文句を言います。完了

git checkout master^ 

:最後はマスターブランチにコミットする前にインクルードが行わコミット

git stash 

をチェックアウト:最後のコミット以降(Gitが追跡しているファイルで)

スタッシュ変更!

git checkout master 
git stash pop 

この素晴らしいGit bookをチェックアウト:バックあなたはスタート地点に到達するために

1

作業ディレクトリを保存し、復元に使用

git stash 
git stash pop 

あなたがプッシュされていないと、マージ競合が発生しますいくつかのコミットをしていた場合、これは、コミットまだプッシュされていないを保存し、最新のコードを取得し、それを適用した後、保存を入れます

git rebase 

を使用最新のコミットの上にコミットします。そして、あなたは完了です。

EDIT:あなたはコードをマージ競合がすでにコミットしないようにしたい場合は、すべてのコミットを取るだろうと

git reset --soft 

を使用するが、まだコードをプッシュして、インデックスに戻ってそれを入れていません。その後、それを隠して、マスターから引き離すことができます。

+0

「rebase」は最新のコードを取得しないと思います。また、マージを行う際にいくつかの競合がありましたが、リベースも使用すると表示されます。 – svick

+0

私は 'rebase'がフェッチをしているとは思わない。 @sciritaiは 'fetch'を回すコードを強調していました。すなわち、それを「隠す」、「フェッチする」、「ポップする」、そしておそらくは「リベース」することができる。 –

+0

私は別の解決策で自分の答えを更新しました。 – sciritai

関連する問題