[英]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.