簡體   English   中英

Git分支和ls

[英]Git branch and ls

我不確定這是否是正確的問題,如果沒有,請重定向。

我是git的新手,在學習它的時候,我偶然發現了這個。 git branch branchName和'ls'如何git branch branchName 例如:如果我有一個master和test分支,test分支與master分支相比有一個額外的testFile。 現在,而在主分支,如果我ls ,我就不會看到TESTFILE但切換到測試分支和后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的一個功能)?

Git,與SVN不同,您知道將分支保存在不同的目錄中,只保留存儲庫目錄中的當前工作分支。

所有分支(實際上,所有對象)都存儲在repo根目錄中的“.git”文件夾中,並且在簽出特定分支時,只存在屬於特定分支的文件。 (以及那些未添加到repo的文件)

git checkout將您從一個分支切換到另一個分支。 為此,它將檢出的存儲庫中的文件替換為分支中的文件。

您的存儲庫實際上是.git子目錄。

如果你做一個ls -a ,你會看到它:

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

跟蹤文件存儲在那里。 您通常只能看到當前簽出的分支。 當你簽出一個不同的分支時,git從.git獲取文件,你可以用ls看到它們。

有關git 如何工作的更多信息,請查看此問題的答案: 我在哪里可以找到關於Git內部的教程?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM