状況についての短い説明: 私は1つのファイルを小さなファイルに分割し、同時に私は分割した自分のコミット変更ファイルを作成します。今私は彼と私のコードを接続/更新したいが、私はできない。例えばgit pull
とするとgitは分割したファイルを再作成します。 これを行う方法はありますか?注文を維持していますか? お返事ありがとうございます。Git。分割されたファイルを更新する
答えて
ですから、もともとfile
を持っていた、そして今、あなたは「file
がfile-A
に移動し、その後、いくつかの行が削除された」が、おそらくGitは」doesnのようにgitはこれを見た場合file-A
のfile-A
とfile-B
取り扱いが容易になるだろう持っています十分な相似性があるので、「file
は削除されました。file-A
が作成されました」と表示されます。
同様に、file-B
の処理は、file-B
に移動し、その後いくつかの行が削除されたため、に移動した方が良いでしょう。
両方とも「正しい」方法での変更はそれほど単純ではないので、代わりにマージプロセスを手に入れることができます。
何らかの方法でマージすると、競合が報告されるはずです。それがなかった場合は( - とだけではなく、静かに悪いマージをコミットする - マージを元に戻すと--no-commit
オプションでそれを再起動します。あなたができる
git reset --hard HEAD^
git merge --no-commit
これは、「紛争のような」状態にあなたを配置しますマージを編集し、あなたが今必要なもの)
は、4つのファイルです:あなたはそれを犯したとして、あなたはそれを
file-B
を犯したとして
file-A
それは後を見て、あなたの同僚がそれfile
編集する前に、それはあなたの同僚がそれ
を編集したに見えたとして
file
最初の2、あなたが既に持っているかもしれませんが、何の疑いも git checkout HEAD -- file-A file-B
があるかどう"pre-edit" file
は、それを持っているコミットを探す必要があるため、最も難しいものです。あなたが右を指す(多分HEAD^
のような)表現を知っていれば、「単純」オプションがあり、それらは、バックティックであることに注意してください(コミットが、最も一般的な解決策は、おそらく
git checkout `git merge-base HEAD origin/master` -- file
です。)あなたは、あなたがfile
git checkout origin/master file
の「編集後」のバージョンをつかむことができるように今、あなたはすべての部分を持っているので、あなたが
ことができる新しいファイル名にmv file base
それを動かします
git merge-file file-1 base file
git merge-file file-2 base file
ここでは、ファイルごとのマージの期待値を正確にgitに伝えています。これらのそれぞれは、マージの競合を引き起こす可能性がありますが、あなたが今見ているものよりも賢明で解決しやすいことを願っています。
あなたは良いfile-A
とfile-B
探していたら:
rm file base
git add .
は、あなたのインデックスの状態を確認してください。 (私はgit add .
は、インデックスのバックアウトfile
をドロップすることを期待しますが、何らかの理由でそれはgit rm --cached -- file
することができますしない場合。)
そして今、あなたは完成し、マージをコミットすることができます。このようなマージ(手作業による介入が必要な場合)は、後でそれを含むrebase --preserve-merges
を実行しようとすると大混乱になることに注意してください。 (いずれのマージでもrebase
には、--preserve-merges
オプションが含まれていません)
あなたの仕事を同僚と同期させる必要があります。たとえば、別のブランチで変更を行い、それを現在のブランチにマージすることができます。変更を取り込み、マージの競合を修正するように彼に依頼します。
ブランチなどを作成する必要はありません。質問の説明から、2つのバージョンがすでに存在していて、gitはすでにそれらをマージしようとしています。 (そして、コメントに基づいて、衝突を正しく報告します。)*よりスムーズに進む可能性のある手順がありますが、ブランチングやマージは現在と同じ状況につながります。 –
- 1. GITの新しい/変更/削除されたファイルのGITリスト
- 2. ダイナミックページ分割/計算されたプロパティが更新されない
- 3. Git:ファイルは「変更されましたが更新されていません」
- 4. Gitログブランチ分割
- 5. git noob:更新されたファイルだけをターゲットディレクトリにコピーする方法は?
- 6. リストファイルとディレクトリセグメント分割されたファイルの最終更新日は検索されません
- 7. 分割された配列にPHPを分割する
- 8. git repoの更新されたブランチを取得するには?
- 9. ファイルに分割されたMATLABを印刷する
- 10. マージされたファイルをファイルヘッダで分割する方法は?
- 11. 分割されたタイムステップと分割されたチャンネル(マクロImageJ)を使用したLIFファイルのBio-Formats変換
- 12. mysqlはセルAとBの更新された分割でセルCを更新します
- 13. Git-SVN:集中化されたSVNサーバからGitリポジトリを更新する
- 14. PHP/Perlファイルが更新されたときに更新する
- 15. 分割gitのブランチ
- 16. 以前に結合されたコードを複数のgitリポジトリに分割する
- 17. 分割されたリポジトリからgitの履歴を復元する
- 18. 分割されたテーブルをフィルタリングする
- 19. git:ブランチ上で変更されたファイルを確認する
- 20. Gitでのみ変更されたファイルをエクスポート/アーカイブする
- 21. 'git pull'でファイルが更新されない
- 22. 分割されたNSCell
- 23. 分割されたテキストActionBar
- 24. 更新されたjavascriptファイルは、更新後数分間サーバーから配信されていません
- 25. サブプロジェクトにgitプロジェクトを分割する
- 26. GITでコミットを分割する
- 27. gitでマージを分割する
- 28. 巨大なgitリポジトリを分割する
- 29. 変更されたファイルをftpで更新する
- 30. メインSassファイルのコンパイル済みcssファイルは、インポートされた部分的なSassファイルを更新して保存するときに更新されません。
引っ張ったときにマージ競合が発生しませんでしたか? –
私は競合しています。何か "git conflict - HEADでファイルが削除され、リビジョンで修正されました。" –