2015-09-17 32 views
0

我有我的家庭文件夾,我想在版本控制下有幾個文件。但是,如果我將整個文件夾置於版本控制之下,則在每次運行git或hg狀態時,都會看到一大串未跟蹤文件。 有沒有辦法使用git或hg,這樣他們只能跟蹤指定的文件並忽略其他所有文件?如何使用git或hg來追蹤文件夾中的選定文件?

回答

0

對於GIT:您可以使用.gitignore文件。

http://git-scm.com/docs/gitignore

或者設置單獨的存儲庫版本控制下你想要的目錄。

Mercurial可能有這樣的:.hgignore

可能最好做一個谷歌搜索這種事情。它是混帳/ HG

+0

但我想排除所有文件,只包括幾個。我認爲.gitignore服務於相反的目的。 – enitihas

+0

創建您的repo,將您想要跟蹤的文件添加到您的索引中,將所有其他文件添加到您不想跟蹤的.gitignore文件(使用通配符等)。不知道你正在使用什麼編輯器或命令行....我使用Eclipse支持git,但過程是相同的。 –

+0

或者,將要跟蹤的文件移動到新目錄並在那裏創建您的.git/hg存儲庫... –

2

一個共同的行動對於這兩個的Git和Mercurial,你可以|必須使用相同的方法:

  • 需要的文件夾中創建存儲庫(GIT中它甚至可以工作目錄外)
  • 添加所有文件忽略列表
  • 只有文件,要控制,特別添加到VCS

添加的文件不會被VCS忽視,所有未版本控制 - 默認每specifcation

0

使用的.gitignore忽略 - 但告訴它忽略的所有文件,然後覆蓋該行與另一個指定的文件不會被忽略用感嘆號對這些文件進行預處理。

例如,爲跟蹤文件A和B,但不是別的,的.gitignore:

* 
!a 
!b 

所以你需要,你真正想要的文件的列表並且將其添加爲單獨的線路,如上面的!a和!b行。

有關gitignore,http://git-scm.com/docs/gitignore更多的信息,在底部明確部分:

Example to exclude everything except a specific directory foo/bar (note the /* - without the slash, the wildcard would also exclude everything within foo/bar): 

    $ cat .gitignore 
    # exclude everything except directory foo/bar 
    /* 
    !/foo 
    /foo/* 
    !/foo/bar 
0

如果你的目標是管理/備份點文件,我認爲這是你在留言中提到的東西,也有很多人誰提供了教程或工具以避免手動管理hgignore或gitignore文件。例如參見下面的教程:

Managing Your Dotfiles

其提供一些實例中(想家,dotbot,如何使用符號鏈接等)。

相關問題