2016-11-25 7 views
2

質問は:昔にタグを追加しようとすると、

は、なぜ私は2つの年上のコミットにタグを追加することはできませんコミットすると、「致命的なタグは 『someTag』は既に存在しますか」?

git tag -a matlabTest cfa84dbb6dd3c2c9956421e723d2f99786f7b417 
git tag -a matlabTest 45b3a4d83eece8a5adcb947392f15a14bd4b0e63 

代わりに私が取得しています:

fatal: tag 'matlabTest' already exists 

それGitはちょうどコミットにタグを結ぶのではなく、新しいタグを作成したいと考えていますが? (詳細は以下を参照)。 https://git-scm.com/book/en/v2/Git-Basics-Tagging、そしてここで私が試したものだ(と失敗):


背景

私はGitの本のガイドラインに従っている

私はgit log --pretty=onelineを入力し、3つのコミットを示す:

cfa84dbb6dd3c2c9956421e723d2f99786f7b417 Preparing to make changes to changes.py to fix 
45b3a4d83eece8a5adcb947392f15a14bd4b0e63 Tests: wholeseq analysis differs to Matlab 
a894da22e2eb1c03930829622656ffd6da5ce161 Initial python scripts for analysis 

タグgit tag -a matlabTestを作成しましたが、今は「mat labTest "を2つのコミット**に追加します。具体的には、上記の3つの上および中のコミット。

git tag -a matlabTest cfa84d 
git tag -a matlabTest 45b3a4 

は今両方のケースで、私は次のエラーを取得する:

fatal: tag 'matlabTest' already exists 

しかし、私は、私が唯一の最初のコミットが正常にタグ付けされたことを確認git show matlabTestを入力して「matlabTest」フラグを表示したときに、私が切り捨てられてきました出力それは長いですが、出力の最後に私は両方のコミットがタグ付けされたことを見ることができないので:

tag matlabTest 
Tagger: *foo (I did not want to show personal information)* 
Date: Fri Nov 25 02:37:41 2016 +0200 

After testing dnds.py by comparing whole-seq dN/dS output to MATLABs dnds() output, both using NG, dnds.py seems to have a calculation error. So I have started to make changes to changes.py 

commit 45b3a4d83eece8a5adcb947392f15a14bd4b0e63 
Author: *foo (I did not want to show personal information)* 
Date: Fri Nov 25 02:20:27 2016 +0200 

*...<remainder of script>* 

余分な背景

**なぜ2つの古いコミットにタグを付ける必要がありますか?デバッグしようとしているサイレントエラー(MATLABで書いた以前のソフトウェアとの矛盾)があり、2つのスクリプト(changes.pyとdnds.py)のいずれかによって引き起こされており、 cfa84dbと45b3a4d8)がそれを指しています。このバグを体系的に処理するために、両方のコミットにタグを付ける必要があります。

答えて

4

タグ常に参照は、(その役割は明確に特定のリビジョンを識別することであるGitのまたは他のVCSに)コミット。
ここで(Git)、コミットはその履歴の特定の時点で完全なレポ状態を表します。あなたのケースでは

、あなたがタグ付けに代わるものを持っている:

it is being caused by either one of two scripts (changes.py and dnds.py) and each has a different commit (cfa84db and 45b3a4d8)

あなたが悪い挙動を示すテストを書くことができると仮定すると、正確な障害のあるがgit bisectにコミット特定することができます。これにより、最初にコミットが検出され、バグが導入されました。

本当に複数のコミットをマークする必要がある場合は、git notesをチェックしてください。

2

2つの異なるコミットに使用するときは、タグ名が異なる必要があります。

タグ名matlabTest.1とmatlabTest.2を使用して区別できます。また、あなたはgit tag -a matlabTest.1 cfa84d -m ‘describe the difference’することができます。

関連する問題