Should I store git repository in Home or Eclipse Workspace?

前端 未结 3 663
北荒
北荒 2020-12-07 12:33

I\'m just moving from svn to git, and am keen to lay some good foundations.

By default Eclipse wants to store my local clone repository in ~/git. I\'m more comforta

3条回答
  •  执念已碎
    2020-12-07 13:04

    I'm too switching to Git in Eclipse, and reading about this issue. It seems that current wisdom (though not everyone agrees) is:

    • Get used to NOT having your projects below the workspace directory.

    • Have one git repository for each group of related eclipse projects (and perhaps more files, of course). The concept of "related projects" is up to your convenience [*]

    • For each repository, one first level directory for each Java project. This implies that you'll have a .git/ directory, and, at the same level, the project directories.

    Example: suppose that, "before GIT", you had one eclipse workspace with several projects:

    /wk/workspace/.metadata/  
    /wk/workspace/projXXX/  
    /wk/workspace/projXXXtest/  (related with the previous)
    /wk/workspace/projYYY1/     |
    /wk/workspace/projYYY2/      >  three related projects
    /wk/workspace/projYYY3/     |
    /wk/workspace/projZ/        (a project you are not going to version in git)
    

    Then you'll create two empty directories, one for each repository, say:

    ~/repositories/XXX/ 
    ~/repositories/YYY/ 
    

    and afterwards, with the new GIT layout, you'll have:

    /wk/workspace/.metadata/  
    /wk/workspace/projZ/ 
    
    ~/repositories/XXX/.git/   (XXX related repository - non-bare)
    ~/repositories/XXX/projXXX/
    ~/repositories/XXX/projXXXtest/
    
    ~/repositories/YYY/.git/   (YYY related repository - non-bare)
    ~/repositories/YYY/projYYY1/
    ~/repositories/YYY/projYYY2/
    ~/repositories/YYY/projYYY3/
    

    Eclipse (EGit) does all this for you when you click Team->Share over an existing project and specify (in the example) ~/repositories/XXX/.git/ as repository, (~/repositories/XXX/ as "Working directory", leave "Path within repository" blank).

    [*] Bear in mind that here each group of projects is, from the Git point-of-view, just a set of directories inside a repository. Some relevant implications: in the above example, you'll never have in the Eclipse workspace two different branches/versions of projects projYYY1 -projYYY2 simultaneously; and, say, when you tag a project commit, you are actually tagging the full repository (group of projects) commit.

提交回复
热议问题