私はまだ Git にかなり慣れていないので、ばかげたことをお許しください。
リモート リポジトリから変更をプルする際に問題が発生しました。以前に特定のファイルに多くの変更を加えたことがあり、チーム メンバーがまったく機能しないいくつかの変更をプッシュしました。私を混乱させているのは、彼の変更が私がしたことを変更するのをどのように防ぐことができるかということです. 最後のコミットを元に戻してそこから移動するのと同じくらい簡単ですか?
私はまだ Git にかなり慣れていないので、ばかげたことをお許しください。
リモート リポジトリから変更をプルする際に問題が発生しました。以前に特定のファイルに多くの変更を加えたことがあり、チーム メンバーがまったく機能しないいくつかの変更をプッシュしました。私を混乱させているのは、彼の変更が私がしたことを変更するのをどのように防ぐことができるかということです. 最後のコミットを元に戻してそこから移動するのと同じくらい簡単ですか?
git は分散バージョン管理システムであるため、使用する信頼モデルによって異なります。この場合、あなたと彼らはおそらく両方ともマスターを変更しており、あなたは両方とも(おそらく)やっていgit pull origin master
ます。これを行うとき (または実際git fetch
にgit merge
構成するもの) は、基本的に、他の人が行った変更、つまり、リポジトリへの書き込みアクセスを許可された他の人が行った変更を信頼していると言っていることになります。これがおそらく今日のあなたの場所です。
インタラクティブなリベースを行うことを検討することをお勧めします (例:git rebase -i HEAD~10
)これにより、履歴のコミットを簡単に削除することもできます。最後のコミットを元に戻すのではなく、変更をコミットしてプルする必要があるため、これは以前のコミットになり、アクセスが難しくなります。ただし、rebase interactive は細心の注意を払って使用してください。そのようなことを学ぶときは、プロジェクト全体を別のディレクトリに戻すことをお勧めします。結果をコミットしてプッシュする前に、結果を注意深く調べてください。
再発しないように、今後も多くのオプションがあります。
支店で働く
git fetch
変更をマージする前に、オリジン追跡ブランチに持ち込まれた変更を最初に調べてください。
変更を確認して承認する担当者を 1 人任命する
オプションの詳細については、
git branch、fork、fetch、merge、rebase、および clone の fetch merge および rebase オプションを参照してください。違いは何ですか?
あなたができることは