84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
一个项目,fork 出来,修改了其中一个文件,git commit & push,然后获取上游的更新,并和自己的代码 merge,merge 后我对原来那个文件的修改被合并,变成上游的代码,现在我想把该文件回退到之前我修改并提交的状态,但是我用 git log 查看的时候出现了标题说明的问题…十分不理解… (图里,我是 hyzhang)
项目在这里
认证高级PHP讲师
を使用したため、完全な履歴を確認し、復元したいバージョンを見つけて確認し、コミットします。 -2呀,然后合并来的上游修改比你的新,所以你自己的修改排在前2之外了。不要用-2
-2
git extras をインストールしてから git revert を実行すると、すべてが自動的に処理されます
git log --pretty=oneline modules.rst を試してくださいgit log --pretty=oneline modules.rst
git log --pretty=oneline modules.rst
看到这个界面,我还是要再推荐下 tig
我 clone 了你的库,然后我分别 checkout 到你之前的 commit 上然后创建新的分支,再进行 diff 操作,以下是结果:
clone
checkout
commit
diff
从 fix typo and translation 到 Merge...无 modules.rst 的修改记录
fix typo and translation
Merge...
modules.rst
从 add... 到 fix typo and translation 仍然无 modules.rst 的修改记录
add...
从 fix typo 到 add... 终于出现了 modules.rst 的修改记录
fix typo
所以很明显 git 的 log 记录没有错,你最近的几次 commit 并没有修改 modules.rst 文件,它又怎么会出现在 log 中呢?
git
log
最近的四次 commit 记录:
根据 git diff 的结果,可以确定从 fix typo 到 add... 的这次提交中是对 modules.rst 最近的操作,所以查看 modules.rst 的 log 肯定只显示到 add... 这次 commit了。
git diff
输入 git log --merges 命令,显示用于 merge 的 commit:
git log --merges
merge
发现了吗?与之前的 merge 相比,你这次 merge 是存在 conflict 的,而且这个 conflict 和你的问题文件 modules.rst 还有关,所以我分析这应该就是问题所在,应该是你的文件产生了冲突,但是你没有解决冲突,而又 merge 成功,这些冲突不知道什么原因被忽略,所以它们不会作为 commit 的一部分进入 log
conflict
に対するものであると判断できます。 rst
コミット
を使用したため、完全な履歴を確認し、復元したいバージョンを見つけて確認し、コミットします。
-2
呀,然后合并来的上游修改比你的新,所以你自己的修改排在前2之外了。不要用-2
git extras をインストールしてから git revert を実行すると、すべてが自動的に処理されます
git log --pretty=oneline modules.rst
を試してくださいgit log --pretty=oneline modules.rst
看到这个界面,我还是要再推荐下 tig
我
clone
了你的库,然后我分别checkout
到你之前的commit
上然后创建新的分支,再进行diff
操作,以下是结果:从
fix typo and translation
到Merge...
无modules.rst
的修改记录从
add...
到fix typo and translation
仍然无modules.rst
的修改记录从
fix typo
到add...
终于出现了modules.rst
的修改记录所以很明显
git
的log
记录没有错,你最近的几次commit
并没有修改modules.rst
文件,它又怎么会出现在log
中呢?最近的四次
commit
记录:根据
git diff
的结果,可以确定从fix typo
到add...
的这次提交中是对modules.rst
最近的操作,所以查看modules.rst
的log
肯定只显示到add...
这次commit
了。输入
git log --merges
命令,显示用于merge
的commit
:发现了吗?与之前的
このインターフェースを見た後でも、私は tig をお勧めします🎜 🎜ライブラリをmerge
相比,你这次merge
是存在conflict
的,而且这个conflict
和你的问题文件modules.rst
还有关,所以我分析这应该就是问题所在,应该是你的文件产生了冲突,但是你没有解决冲突,而又merge
成功,这些冲突不知道什么原因被忽略,所以它们不会作为commit
的一部分进入log
clone
し、以前のcommit
にcheckout
して新しいブランチを作成し、diff
を実行します。 > 操作の結果は次のとおりです: 🎜 🎜🎜 🎜fix typo and translation
からMerge...
までのmodules.rst
の変更記録はありません🎜 🎜🎜 🎜add...
からfix typo and translation
まで、modules.rst
の変更記録はまだありません🎜 🎜🎜 🎜fix typo
からadd...
まで、最後にmodules.rst
の変更記録が表示されます🎜 🎜つまり、git
のlog
レコードが正しいことは明らかです。最近のcommit
はmodules.rst
を変更しませんでした。 > ファイルをlog
に表示するにはどうすればよいですか? 🎜 🎜最後の 4 つのcommit
レコード:🎜 🎜
git diff
の結果によると、fix typo
からadd...
への送信はに対するものであると判断できます。 rst
の最新の操作であるため、modules.rst
のlog
を確認すると、add...
のみが表示されます。 > 今回はコミット
します。 🎜 🎜git log --merges
コマンドを入力して、merge
に使用されるcommit
を表示します。 🎜 🎜🎜 🎜見つけましたか?以前のmerge
と比較すると、今回のmerge
にはconflict
があり、このmerge
は、以前のmerge
とは異なります。問題ファイルmodules.rst
はまだ関連しているため、これが問題であると分析しました。ファイルが競合しているはずですが、競合を解決せず、merge
を実行しました。 > 成功した場合、これらの競合は不明な理由で無視されるため、commit
の一部としてlog
の履歴には記録されません。さて、お休みの時間です。回答が質問者様のお役に立てば幸いです。 :)🎜