git中有一種方法可以爲分支提供「描述」嗎?雖然我嘗試使用描述性名稱,但在單個分支上工作一段時間有時會減弱我爲什麼創建其他主題分支的記憶。我嘗試使用分支的描述性名稱,但我認爲'描述'(關於分支目的的簡短說明)會很好。git中的分支描述
回答
Git 1.7.9支持這個。從1.7.9 release notes:
* "git branch --edit-description" can be used to add descriptive text to explain what a topic branch is about.
你可以看到在2011年9月推出回到這個功能,以提交6f9a332,739453a3,b7200e8:
struct branch_desc_cb {
const char *config_name;
const char *value;
};
--edit-description::
打開一個編輯器,編輯文本,以說明什麼分支用於被其他各種命令使用(例如
request-pull
)。
請注意,它不適用於分離的HEAD分支。
該描述被腳本request-pull使用:請參閱commit c016814783,還可以使用git merge --log
。
request-pull
是用來概括到標準輸出兩次提交之間的變化的腳本,並且包括在所生成的概要給定的URL。
我很確定該功能當前不受支持。我認爲你最好的選擇是在分支中創建一個描述文本文件,一個README文件,它有你想要的信息。
我不得不擔心(不)在跨分支合併此文件。我不是嗎? – 2010-01-21 10:40:59
@KaspervandenBerg:也許只是留下評論而不是拔出-1張牌,然後等待一段時間,如果提問者不願意改變帖子,但你看到他/她/它同時訪問了這個網站, 把它拼出來。或者_you_定期檢查你的答案,看看他們是否仍然正確? – 2012-08-15 08:12:02
@phresnel:好點;我的意圖是幫助未來的這個問題的提問者,並且有良好的反應能力和不正確的反應能力,但並不是爲了「懲罰」克里斯J並導致他失去聲譽。不幸的是,該網站表示我的投票被鎖定:(。 – 2012-08-15 10:26:38
的README
通過Chris J建議可以工作,只要它是建立一個custom merge driver defined in a .gitattribute
。
這樣,本地版本的README
始終保留在合併期間。
分支的「描述」也被稱爲與該元數據關聯的「註釋」,並且不被支持。
至少,有README
文件,你可以爲任何一間分行,做:
$ git show myBranch:README
如果你的自述是在你的REPO的根目錄下,它會從任何路徑工作,因爲由使用的路徑是來自所述回購的頂部目錄的絕對路徑。
團隊中的每個人都必須意識到這一點,並將其設置在他們的.gitattribute中,如果他們想要它嗎?如果是這樣,在我看來,這將是難以管理的,並且實際上人們很可能會這樣做。 – 2015-07-15 22:26:15
選定的答案似乎對我來說過分殺傷。我傾向於維護每個分支描述文件,這是一個普通的源代碼控制文件,如master.txt
,dev.txt
等,如果有難以處理的數字或分支我會創建一個層次結構來更好地組織它。
然後你不得不擔心將這些文件合併到其他分支,或者記得使用' git show master:dev.txt',它不比選擇的答案簡單。 – 2010-12-23 22:40:45
您可以將意見標籤:
git tag -m 'this was a very good commit' tag1
按照慣例,你可以有與您的分支名稱標籤或者你可以使用標籤-f保持註釋標記在您的主題分支的頭。
這是不理想的,因爲它不跟蹤分支的頭部 – AndyL 2011-05-27 19:42:01
如果使用README做末起來,創建一個git alias修改git checkout
,使您的README顯示每次轉換分支的時間。
例如,在〜/的.gitconfig添加此,下[別名]
cor = !sh -c 'git checkout $1 && cat README' -
在此之後,可以運行git cor <branch_name>
切換分支和顯示你是分支的自述切換到。
+1。這是一個很好的提示,但你不是指'.gitconfig'而不是'.gitignore'? – 2010-11-03 10:39:33
有趣的提示(不知道爲什麼它downvoted)。 +1 – VonC 2010-11-03 11:55:04
當人們沒有理由地倒退時,我討厭它。整個練習的重點要學習和提高。 – 2010-11-03 16:21:51
這裏是一個可能實現的git branches
命令格雷格Hewgill提到的:
#!/usr/bin/perl
sub clean {
map { s/^[\s\*]*\s// } @_;
map { s/\s*$// } @_;
return @_;
}
sub descr {
$_ = `git config [email protected]_.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";
}
使用git branch --edit-description
設置或編輯一個分支描述。
這是一個shell函數,用於顯示類似於git branch
的分支,但附有說明。
# Shows branches with descriptions
function gb() {
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 == $(git rev-parse --abbrev-ref HEAD) ]; 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.
而作爲一個圖像,所以你可以看到的顏色:
使用:
git branch --list -v
顯示上游分支:
git branch --list -vv
添加-r
只或-a
顯示遙控器顯示遙控器和本地
這些都很有用,我正在尋找一些自定義的東西。附有參考文件的某種說明。 – 2015-08-07 09:36:30
有兩種流行的建議在這裏:
git branch --edit-description
:我們不喜歡這個,因爲你不能推它。也許我可以記住我創建的分支是做什麼的,但我的團隊肯定不能。README
file 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
缺點是,你需要簽出怪異的孤兒分支,當你想更新README
和README
不作爲分支機構獲得改名不自動更新,來或去。不過,這對我們來說很好。
不喜歡它:
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
。
只有*可以*擁有master中的自述文件。這會增加混亂,但始終可以訪問。 – 2017-07-11 12:14:27
@ PeterA.Schneider:當然,但是然後添加一個新的分支需要一個提交,即使這個改變與master沒有任何關係。另外,當分離主人時,你將在所有分支中有一份自述文件,這是一團糟。 – 2017-07-12 04:32:42
git config --global --add alias.about '!describe() { git config branch."$1".description; }; describe'
命令將定義一個全局選項alias.about
作爲shell表達式。在存儲庫中運行git about <branch>
將顯示分支的說明(如果設置)。
謝謝!我改變了它,所以它只是看着我在 - 「」!(描述)()(git配置分支。「$(git符號ref -short -q HEAD)\」。描述;}描述「' – aug 2017-03-23 23:40:32
@aug - 我需要在參數引號前面放置反斜槓以使其起作用:'git config --global --add alias.about'!describe(){git config branch。」$(git symbolic-ref --short -q HEAD)「。描述; }; describe'' – 2017-04-26 13:40:55
只需使用:
git config branch.<branch name>.description
要給予信貸,信貸是由於: https://glebbahmutov.com/blog/git-branches-with-descriptions/
這是在添加問題後發佈的git版本中添加的。接受的答案提到了這一點。 – 2017-11-27 15:17:48
啊是的。它在評論中被提及。 – 2017-11-28 13:45:02
- 1. git中的分支描述,繼續
- 2. 如何檢索Git分支的描述?
- 3. Git顏色 - 分支描述文本
- 4. git分支概述
- 5. 打印分支描述
- 6. 還原分支更改git的標記名稱描述
- 7. git - 將分支描述推送到遠程
- 8. 是否可以向Git分支添加描述性標籤?
- 9. 描述Git符號
- 10. 查看分支機構(git櫻桃)與描述之間的提交?
- 11. 如何在git中添加長描述
- 12. 在libgit2中執行git描述
- 13. VSTS 2015 Git Pull請求描述不支持降價
- 14. 分享臉書的描述
- 15. 獲取Git存儲庫的描述
- 16. Git上的擴展描述文本
- 17. Git描述給出不同的標籤
- 18. 在git中創建分支的分支?
- 19. 支持的文化和市場描述
- 20. pom.xml中<build>部分的描述?
- 21. 將git描述爲shell變量
- 22. git-diff如何生成大塊描述?
- 23. git回購描述不更新
- 24. 產品描述部分
- 25. 區分標題與描述
- 26. git分支(沒有分支)
- 27. 如何在Git中分支分支?
- 28. Git vs Mercurial中的分支
- 29. xcode中的Git(no分支)
- 30. 刪除git中的分支
你爲什麼不按你的想法命名分支?林不知道,但一個功能應該描述在一個複合詞 – fyr 2011-07-20 12:16:22
這將是一個非常有用的功能。 git分支-a可以顯示分支名稱旁邊的描述。也許git筆記將支持分支的註釋以及未來的提交? – jhabbott 2011-10-31 13:55:31
我有一個[類似的問題](http://stackoverflow.com/questions/1876142/git-how-to-keep-a-file-common-across-all-branches)。我使用該文件來記錄分支,以及它們爲什麼存在(等等)。 – themis 2010-01-23 01:13:27