1
*   84b134d - (HEAD, origin/lab_master, lab_master) comment macro defination which is protent to be a fun
|\
| * 735d88f - add small script to ease ctag related option (13 minutes ago) 
* | 6623a94 - add small script to ease ctag related option (4 minutes ago) 
|/
* 0d0913a - add gitignore to ignore ctags file (57 minutes ago) 

735d88f は --amend コミットですが、この時点で競合が発生しました。なぜですか?

私は 1 台の PC しか持っておらず、常にその上でファイルを編集しています。ローカル リポジトリも 1 つしか持っていません。さらに、このリポジトリはここでしか使用されていません。競合が発生する可能性はないと思います

しかし、それは起こった、なぜですか?

4

2 に答える 2

9

まだサーバーにプッシュしていないコミットのみを修正することをお勧めします。コミットをプッシュしたら、それを修正してプッシュしようとすると、(サーバーに記録されている) 履歴を変更しているため、競合が発生します。

于 2012-09-19T17:27:30.670 に答える
0

競合の例は見当たりません。あなたが行ったことは、同じ時点から同じ変更を行い、それらをマージしたことです。いずれにせよ、これをすべて1つに押しつぶすことでこれを修正できます

git tag finalstate 84b134d
git stash -u
git reset --hard 0d0913a
git checkout finalstate -- .
git add -A
git commit -C finalstate

「コメントマクロ」コミットと2番目の「小さなスクリプトを追加」コミットが有効な場合は、次のことができます

git tag finalstate 84b134d
git stash -u
git reset --hard 6623a94
git checkout finalstate -- .
git add -A
git commit -C finalstate

代わりは。代わりに2番目のものが必要な場合は、

git tag finalstate 84b134d
git stash -u
git reset --hard 735d88f
git checkout finalstate -- .
git add -A
git commit -C finalstate

の後にヘルパータグを削除します

git tag -d finalstate

2 番目のコミットの後にプッシュし、修正してからプルすると、競合とのマージが発生します。競合解決とのマージに別のコミットがない理由がわかりません。競合状態にある間に、おそらくより多くの作業を行い、競合を修正し、すべての変更を追加してコミットしました。この場合、私が書いた最後の手順が役に立ちます。

于 2012-09-19T17:17:01.143 に答える