「開発」ブランチに変更を加えると、ブランチの横に、プッシュされる変更の数を示す上矢印が表示されます。あなたがsourcetreeが数が何であるかをどのように決定するのかあなたは私を混乱させますか?
それはハンクと呼ばれるものに関連しているようですか?塊とは何ですか?
同じ数を返す同等のgit commitはありますか?
プッシュされる変更の数は、おそらく、Origin /マスターより先にあるコミットの数を指し、ハンクとは関係がないことに注意してください。マスターより先にあるコミットを確認するには、次のようにします。
# get most recent commit found in both master and Origin/master
mb=$(git merge-base master Origin/master)
# show commits from that merge base to current head
git log $mb..HEAD
カウントしたい場合は、次のようにします。
mb=...
git log --pretty=oneline $mb..HEAD | wc -l
hunk
は diff
に関連する用語です:
フォーマットは、元のファイルの前に「---」が付き、新しいファイルの前に「+++」がつくことを除いて、コンテキストフォーマットと同じ2行のヘッダーで始まります。これに続くのは、ファイル内の行の違いを含む1つ以上の変更ハンクです。変更されていないコンテキスト行の前にはスペース文字があり、追加行の前にはプラス記号があり、削除行の前にはマイナス記号があります。
2つのファイルの差分を取ったことがある場合は、次のようなファイルが表示されます(再びウィキペディアから)。
--- /path/to/original ''timestamp'' +++ /path/to/new ''timestamp'' @@ -1,3 +1,9 @@ +This is an important +notice! It should +therefore be located at +the beginning of this +document! + This part of the document has stayed the same from version to @@ -5,16 +11,10 @@ be shown if it doesn't change. Otherwise, that would not be helping to -compress the size of the -changes. - -This paragraph contains -text that is outdated. -It will be deleted in the -near future. +compress anything. It is important to spell -check this dokument. On +check this document. On the other hand, a misspelled Word isn't the end of the world. @@ -22,3 +22,7 @@ this paragraph needs to be changed. Things can be added after it. + +This paragraph contains +important new additions +to this document.
上記のファイルには3つの塊があります。コミットに関連付けられている差分を確認する場合は、git show [<commit>]
を使用できます。現在のステージングされていない変更とリポジトリの違いを確認するには、git diff
を使用できます。他にもさまざまなオプションがあります。
ハンクの数を数えるには(これは本当に、本当に役に立たないが、主張する場合)、非常に単純なスクリプトを使用できます。
git show | grep '^@@.*@@.*$' | wc -l
2番目の.*
の後の@@
の理由は、gitのdiffが変更が属する関数も示すため、後でdiffをより適切に適用できるため、ハンクの見出しはたとえば次のようになります。
@@ -85,6 +85,6 @@ void urt_shmem_detach(void *mem)
hunkの質問に答えると:
Hunk means a piece of change in the Git world.
src: https://mvtechjourney.wordpress.com/2014/08/01/git-stage-hunk-and-discard-hunk-sourcetree/
の提案があります
「hunk」という単語を「change」に置き換えれば、Gitに従うのが楽しくなります。
プッシュされる変更の数は、基本的には最後のプッシュ以降に行ったコミットの数です。 Sourcetreeは、コミットに関してリモートヘッドと現在のヘッドの間の距離を調べることでこれを計算します。
git status
は、進行中のコミットの数(=プッシュされるコミットの数)を通知します。
# On branch master
# Your branch is ahead of 'Origin/master' by 1 commit.
これは、diffの個々の断片であるhunkとはあまり関係がありません。