[解決済み] Gitのプルにより、コミットログに余計な "Merge branch "メッセージが表示される。
質問
私はあるプロジェクトで他の開発者と働いており、リモート リポジトリとして Github を使用しています。私は Mac で git 1.7.7.3 を使用しており、彼は Windows で git 1.7.6 を使用しています。
これが起きていることです。
- 私たちのうちの一人 (開発者 A とします。どちらでもかまいません) が GitHub に一連のコミットをプッシュします。
- もう一人 (開発者 B) はローカルでコミットします。
-
B は
git pull
. -
Bは
git push
. - コミット履歴のログを見ると github.com:foo/bar のブランチ 'master' をマージします。
コミットログは時間とともに "Merge branch" のメッセージで散乱し、開発者 B が開発者 A が行った変更をコミットしたように表示されるようになります。この問題を防止するために私たちが見つけた唯一の方法は
git pull --rebase
を実行することです。しかし、リベースによってどのような副作用が発生するかはわかりません。複数の開発者がいる git リポジトリで作業するのは初めてなので、これは通常の動作なのでしょうか?この問題を解決する方法について何か考えがありますか?
どのように解決するのですか?
表示されているコミットは全く問題ありません。A
pull
は事実上
git fetch
を実行し、次に
git merge
を実行すると、通常、マージが行われます。
git pull
.
マージの代わりにリベースを使うという選択肢もありますが、通常は避けるべきでしょう。リベースは直線的な歴史を保つことができますが、元々起こったブランチに関する情報をすべて削除してしまいます。また、現在のブランチの履歴が書き換えられ、ターゲットブランチ (あなたの場合はリモート) に含まれていないすべてのコミットが再作成されます。再作成されたコミットは 異なる 特に、書き換えられる前にそのコミットの一部をチェックアウトしている人がいる場合 (たとえば feature ブランチなど)、他の人と一緒に開発するときに大きな混乱が生じる可能性があります。そこで、経験則として は決して を実行する必要があります。
あなたが見たコミットは、2つ(あるいはそれ以上)のブランチを結合するためにあるものです。複数のブランチをマージする以外のことをしないコミットがあっても、まったく問題ありません。実際、履歴を見ると、ブランチを結合するマージコミットがあることが一目瞭然です。リベースと比較すると、マージは効率的に オリジナル の履歴を見ることができます。
つまり、長い話を短くすると、マージコミットがあることはまったく問題なく、心配する必要はありません。
関連
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] 既存の、プッシュされていないコミットメッセージを修正するには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] Gitブランチをmasterにマージする最も良い(そして最も安全な)方法は何ですか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[git push] 解決策: ! [リモート拒否] master -> master (受信前のフックは拒否されました)
-
git occurs このリポジトリで別のgitプロセスが動作しているようです。例えば、.NETで開いたエディタなど。エラー
-
git reset --hardとgit reset --softの違いについて
-
[Gitラーニングノート】Gitのコンフリクト:マージする前に変更をコミットするかstashする。
-
[解決済み] git pull --rebase はいつ使うべきですか?
-
Git Bash报错发生: メールアドレスが自動検出されない (「Anita@newton.(none)」を取得)的解决方法。
-
[解決済み] チェリーピックのコンフリクトを解決するにはどうしたらいいですか?
-
[解決済み] git diff を stdout に書き出すには?
-
[解決済み] Gitブランチの名前をローカルとリモートで変更できますか?重複
-
[解決済み] gitで、stashを適用せずに、追跡されていないstashedファイルを表示する方法はありますか?