317

Git にブランチの「説明」を付ける方法はありますか?

わかりやすい名前を使用するように努めていますが、1 つのブランチでしばらく作業していると、なぜ他のトピック ブランチを作成したのかという記憶が薄れてしまうことがあります。ブランチには説明的な名前を使用しようとしていますが、「説明」(ブランチの目的に関する短いメモ) がいいと思います。

4

15 に答える 15

223

Git1.7.9はこれをサポートしています。1.7.9リリースノートから:

*「gitbranch--edit-description」を使用して説明テキストを追加できます
   トピックブランチとは何かを説明するため。

2011年9月に導入された機能は、コミット6f9a332、739453a3b7200e8確認できます。

struct branch_desc_cb {
  const char *config_name;
  const char *value;
};

--edit-description::

エディターを開き、テキストを編集して、ブランチの目的を説明し、他のさまざまなコマンドで使用できるようにします(例request-pull)。

切り離されたHEADブランチでは機能しないことに注意してください。

その説明は、スクリプトrequest-pullによって使用されます。commitc016814783を参照してください。また、git merge --log

request-pullは、標準出力への2つのコミット間の変更を要約するために使用されるスクリプトであり、生成された要約に指定されたURLを含めます。

[@AchalDaveから]残念ながら、説明は構成に保存されているためプッシュできず、チーム内のブランチを文書化するために使用できなくなります。

于 2012-01-13T23:56:29.240 に答える
40

README を使用することになった場合は、ブランチを切り替えるたびに README が表示されるように変更するgit エイリアスを作成します。git checkout

たとえば、これを ~/.gitconfig の[alias]の下に追加します。

cor = !sh -c 'git checkout $1 && cat README' -

この後、実行git cor <branch_name>してブランチを切り替え、切り替え先のブランチの README を表示できます

于 2010-11-03T08:31:33.740 に答える
36

git branch --edit-descriptionブランチの説明を設定または編集するために使用します。

以下は、同様のブランチを表示するシェル関数ですgit branchが、説明が追加されています。

# Shows branches with descriptions
function gb() {
  current=$(git rev-parse --abbrev-ref HEAD)
  branches=$(git for-each-ref --format='%(refname)' refs/heads/ | sed 's|refs/heads/||')
  for branch in $branches; do
    desc=$(git config branch.$branch.description)
    if [ $branch == $current ]; then
      branch="* \033[0;32m$branch\033[0m"
     else
       branch="  $branch"
     fi
     echo -e "$branch \033[0;36m$desc\033[0m"
  done
}

画像が腐った場合に備えて、ここgbにテキストとして表示されます。

$ gb
* logging Log order details.  Waiting for clarification from business.
  master 
  sprocket Adding sprockets to the parts list.  Pending QA approval.

そして画像として、色を見ることができます:

ここに画像の説明を入力

于 2013-05-23T09:21:55.547 に答える
30

で定義されたカスタム マージ ドライバでセットアップされている場合、Chris JREADMEによって提案されたものは機能します。 こうすることで、 のローカルバージョンがマージ中に常に保持されます。.gitattribute
README

ブランチの「説明」は、そのメタデータに関連付けられた「コメント」とも呼ばれ、サポートされていません。

少なくとも、READMEファイルを使用すると、どのブランチでも次のことができます。

$ git show myBranch:README

README が REPO のルート ディレクトリにある場合、使用されるパスgit showはそのレポのトップ ディレクトリからの絶対パスであるため、任意のパスから機能します。

于 2010-01-21T11:36:01.390 に答える
22

ここには 2 つの一般的な提案があります。

  1. git branch --edit-description:プッシュできないので、これは好きではありません。自分が作成したブランチの機能を覚えているかもしれませんが、私のチームは覚えていません。
  2. READMEファイルPR。ブランチ。これはマージ中の苦痛です: 競合をマージする可能性が非常に高く、README機能ブランチをマージするときにブランチから引き込むことになります。ブランチ間の違いも苦痛です。

孤立したbranches-readmeブランチを作成することにしました。孤立したブランチは、独自の個別の履歴を持つブランチです。Github のgh-pagesブランチから知っているかもしれません。この孤立したブランチには、単一のREADMEファイルが含まれています。次のような内容があります。

master:
    The default branch
mojolicious:
    Start using Mojolicious
branch-whatever:
    Description of the whatever branch

プッシュ可能でマージフレンドリーです。README次のコマンドを使用して、任意のブランチから を表示します。

git show branches-readme:README

短所は、 を更新したいときに奇妙な孤立したブランチをチェックアウトする必要があり、ブランチの名前が変更されたり、出たり入ったりしても自動更新されないことですREADMEREADMEしかし、それは私たちにとっては問題ありません。

次のようにします。

git checkout --orphan branches-readme
# All the files from the old branch are marked for addition - skip that
git reset --hard
# There are no files yet - an empty branch
ls
vi README
# put in contents similar to above
git add README
git commit -m "Initial description of the branches we already have"
git push origin branches-readme
# get all your original files back
git checkout master

同様に、個々のチーム メンバーは、 branches-$user必要に応じて、チームにプッシュしない限り、自分のプライベート ブランチを記述する独自の孤立ブランチを作成することもできます。

さらにツールを使用すると、これを の出力と統合することもできますgit branch。そのためREADME.yamlに、プレーンの代わりにファイルを考えることができるかもしれませんREADME

于 2016-08-04T08:31:49.853 に答える
13
git config --global --add alias.about '!describe() { git config branch."$1".description; }; describe'

コマンドはグローバル オプションalias.aboutをシェル式として定義します。git about <branch>設定されている場合、リポジトリで実行すると、ブランチの説明が表示されます。

于 2016-10-05T07:17:05.277 に答える
6

git branchesこれは、 Greg Hewgill がほのめかしたコマンドの可能な実装です。

#!/usr/bin/perl

sub clean {
    map { s/^[\s\*]*\s// } @_;
    map { s/\s*$// } @_;
    return @_;
}

sub descr {
    $_ = `git config branch.@_.description`;
    s/\s*$//;
    return $_;
};
sub indent {
    $_ = shift;
    s/^/      /mg;
    return $_;
};

my @branches = clean `git branch --color=never --list`;
my %merged = map { $_ => 1 } clean `git branch --color=never --merged`;

for my $branch (@branches) {
    my $asis = `git branch --list --color=always $branch`;
    $asis =~ s/\s*$//;
    print "  $asis";
    print " \033[33m(merged)\033[0m" if ($merged{$branch} and $branch ne "master");
    print "\n";

    print indent descr $branch;
    print "\n";
    print "\n";
}
于 2012-04-21T18:02:53.363 に答える
3

ブランチを作成したいとします

git branch branch-20200328
git notes add branch-20200328 -m "This branch is for whatever"
git notes show branch-20200328
于 2020-03-28T21:51:37.980 に答える
2

タグにコメントを付けることができます:

git tag -m 'this was a very good commit' tag1

慣例により、ブランチ名に関連するタグを付けるか、tag-fを使用してトピックブランチの先頭にコメント付きタグを保持することができます。

于 2010-01-22T13:23:59.017 に答える
0

選択された回答は、私にはやり過ぎのように思えます。通常のソース管理ファイルであるブランチごとの記述ファイルを維持する傾向があります。たとえばmaster.txtdev.txt、などです。扱いにくい数またはブランチがある場合は、階層を作成して整理します。

于 2010-01-21T13:31:11.783 に答える
0

その機能が現在サポートされていないことは確かです。最善の策は、必要な情報を含むブランチに、基本的に README である説明テキスト ファイルを作成することだと思います。

于 2010-01-21T10:35:14.063 に答える
-4

使用する

git branch --list -v

アップストリーム ブランチを表示するには:

git branch --list -vv

-rリモートのみ-aを表示する場合、またはリモートとローカルを表示する場合に追加します。

于 2015-08-07T08:53:59.057 に答える