1

この質問と基本的に同じようなことをしたいと思います。

追跡されていないディレクトリを追跡されたディレクトリにマージします

しかし、そこにある答えは私の状況には特に役立ちません。

基本的に、同僚が自分のバージョンのコードをzipファイルとして送ってくれました。彼のバージョンは私のバージョンよりもかなり進んでいるはずですが、私のバージョンには彼にはないと思われるバグ修正がいくつかあるため、彼のバージョンを使用することはできません。私がやりたいのは、コードへの私の貢献だけを含むパッチを作成し、彼の(追跡されていない)バージョンに私の変更をパッチすることを試みることです。

これは、新しいブランチでコードの作業を開始する前にリビジョンをチェックアウトし、彼のファイルをそのリポジトリにコピーして新しいブランチとしてコミットし、そのブランチを私のものとマージすることと同じですか?もしそうなら、私が問題のディレクトリで行った最初のコミットを見つけるにはどうすればよいですか?

4

2 に答える 2

2

git log特定のパスに影響を与えたすべてのコミットを表示するために使用できます。

git log -- path/to/interesting/dir

自分のコミットにのみ関心があるので、次の--authorオプションも必要になります。

git log --author=mgilson -- path/to/interesting/dir

--onelineディレクトリ内の最初のコミットはリストの最後のコミットであり、オプションとtail:の組み合わせで見つけることができます。

git log --author=mgilson --oneline -- path/to/interesting/dir | tail -n1
于 2012-05-30T14:16:43.433 に答える
1

これは、新しいブランチでコードの作業を開始する前にリビジョンをチェックアウトし、彼のファイルをそのリポジトリにコピーして新しいブランチとしてコミットし、そのブランチを私のものとマージすることと同じですか?

はい、それは同じである必要がありますが、すべてを同じ参照に保つという追加の利点があります。

問題のディレクトリで行った最初のコミットを見つけるにはどうすればよいですか?

git bisect最初の「悪い」コミット(つまり、ディレクトリが存在するコミット)を見つけるには、Aが役立ちます。

于 2012-05-30T14:10:36.847 に答える