2010-03-22 41 views
6

假設我有一個名爲「todo」的文件:git中的文件與修訂控制下的回購相關聯,但與任何特定分支無關?

這是我希望爲此項目執行的事情的列表。

我想要這個文件與我的git倉庫相關聯。

我希望這是該文件的不同版本,

不過,我不希望它與特定分支相關聯。例如:

  1. 在分支主上。
  2. 創建一些基本的待辦事項
  3. 分公司「DEV1」
  4. 添加更多的東西,從主待辦事項列表
  5. 分公司「裝置2」。
  6. 添加更多的東西到待辦事項列表
  7. 現在,我有不同的待辦事項文件的修訂。

我只想要有一個「todo」文件 - 這可能嗎?這有意義嗎?我以某種方式濫用todo嗎?

回答

10

另一個訣竅是使用一個獨立的分支,作爲Junit Hamano(當前的Git維護者)在Git的todo中執行的項目的子樹中檢出。食譜:

$ cd project/ 
$ git branch 
* master 
$ git init META 

現在可以創建你的「待辦事項列表」中META/

$ cd META/ 
$ echo '* Item 1' > todo.org 
$ git add todo.org 
$ git commit -m 'Initial version of TODO file' 
[master (root-commit) 64748ba] Initial version of TODO file 
1 files changed, 1 insertions(+), 0 deletions(-) 
create mode 100644 todo.org 

和其他文件,讓我們改變分支名meta,也和它推回主庫:

$ git branch -m meta 
$ git push .. meta 

您將不得不記住在每次提交後都推回分支;設置一個提交後的掛鉤可能是有序的。

META/現在顯示爲主存儲庫中未跟蹤的文件;讓我們忽略它在本地:

$ cd .. 
$ git status 
# (Shows META/ as untracked) 
$ echo META/ >> .git/info/exclude 

現在,您可以隨意切換分支機構,並META/將保持不變,只要你切換到不包括課程的衝突路徑,分支。

主要倉庫現在包含一個附加的,完全獨立的分支,它可以推拉作爲項目的任何其他部分:

$ git branch 
* master 
    meta 
$ gitk --all 

Screenshot

+0

+1!總以爲這是一個很酷的設置,這是如何實現它的一個很好的解釋。 – Cascabel 2010-03-22 15:46:01

+0

+1,非常有趣的設置。 – VonC 2010-03-22 17:47:38

+0

此外,您還在這裏展示了創建斷開分支的最簡單方法! – tig 2012-08-01 15:22:31

1

使用不同的回購。

我保留一個~/org目錄,emacs可以在我的機器上自動跟蹤git和syncs。我所有的待辦事項都在那裏,但與任何特定的項目無關。如果我想要一個與特定項目關聯的人,我會製作一個~/org/project.org

1

要更新您的待辦事項文件的任何時候,你可以merge it first

git checkout previousBranch todo 

注意:如果不合並,就可以看到一個待辦事項的內容與任何一間分行:

git show myBranch:todo 

如果您的todo文件位於存儲庫的根目錄下,它將從任何路徑運行,因爲使用的路徑是來自所述repo頂部目錄的絕對路徑。

這樣,你可以:

  • 看到任務,只有有意義的一個分支
  • 有一個腳本連接所有待辦事項版本的內容爲所有分支(git branch
相關問題