【问题标题】:Git branch and lsGit 分支和 ls
【发布时间】:2011-08-18 10:22:06
【问题描述】:

我不确定这是不是问这个问题的正确地方,如果不是,请重定向我。

我是 git 新手,在学习它时我偶然发现了这一点。 git branch branchName 和 'ls' 如何相互配合。 例如: 如果我有一个 master 和 test 分支,并且 test 分支与 master 分支相比有一个额外的 testFile 。 现在,在 master 分支中,如果我 ls,我将看不到 testFile,但在切换到 test 分支和 ls 后,我会看到 testFile

kiran@kiran-desktop:/media/kiran/Linux_Server/dev$ git branch
  master
* test
kiran@kiran-desktop:/media/kiran/Linux_Server/dev$ git checkout master
M   editor/editor_parts/syntax/operator_syntax.js
Switched to branch 'master'
kiran@kiran-desktop:/media/kiran/Linux_Server/dev$ ls
cgi-bin     index.php                    misc           underConstruction
editor      jquery-1.5.2.min.js          php.php        userManage
fileManage  jquery-ui-1.8.11.custom.css  projectManage  userPages
images      login                        test.php
kiran@kiran-desktop:/media/kiran/Linux_Server/dev$ git checkout test
M   editor/editor_parts/syntax/operator_syntax.js
Switched to branch 'test'
kiran@kiran-desktop:/media/kiran/Linux_Server/dev$ ls
cgi-bin     index.php                    misc           test.php
editor      jquery-1.5.2.min.js          php.php        underConstruction
fileManage  jquery-ui-1.8.11.custom.css  projectManage  userManage
images      login                        testFile.txt   userPages
kiran@kiran-desktop:/media/kiran/Linux_Server/dev$ 

但是来自两个分支的pwd 显示相同的位置。

那么,切换分支如何改变ls 的输出(据我所知是linux的一个功能)?

【问题讨论】:

    标签: linux git git-branch


    【解决方案1】:

    git checkout 将您从一个分支切换到另一个分支。为此,它会将签出存储库中的文件替换为分支中的文件。

    您的存储库实际上是.git 子目录。

    如果你做一个ls -a,你会看到它:

    % ls -a -1
    .git
    .gitignore
    ...
    

    跟踪的文件存储在那里。您通常只会看到当前签出的分支。当你签出不同的分支时,git 从.git 抓取文件,你可以通过ls 看到它们。

    查看此问题的答案以了解有关 如何 git 工作的更多信息:Where can I find a tutorial on Git's internals?

    【讨论】:

      【解决方案2】:

      与 SVN 不同,Git 将分支保存在不同的目录中,它只将当前工作分支保存在存储库目录中。

      所有分支(实际上是所有对象)都存储在 repo 根目录的“.git”文件夹中,当您签出特定分支时,仅存在属于特定分支的文件。 (以及那些未添加到 repo 中的文件)

      【讨论】:

        猜你喜欢
        • 2019-08-27
        • 2020-04-12
        • 2014-09-08
        • 2019-12-11
        • 2013-05-28
        • 1970-01-01
        • 2014-07-30
        • 2017-12-22
        • 2015-03-28
        相关资源
        最近更新 更多