我正在发现如何使用git。
我刚做了以下测试:
回到主人:git checkout master
惊喜:我离开时没有找到主人;文件夹已经消失。我必须做一个git -reset - 很难找到我的文件夹。
我想知道我是否做错了什么或者我是否理解git如何管理本地更改。谢谢你的帮助。
详细方案:
mkdir GitTest
cd GitTest/
mkdir Folder1
echo "master" > Folder1/File1.txt
echo "master" > File2.txt
git init
git add .
git commit -m "init"
git branch expe
git checkout expe
mv File2.txt File3.txt
mv Folder1/ Folder1-exp/
echo "expe" >> Folder1-exp/File1.txt
git add .
git commit -m "expe"
git checkout master
ls
git checkout expe
ls
答案 0 :(得分:2)
那是因为difference between git add .
and git add -A
。
只有git add -A会记录新文件和已删除的文件。
当您完成第二个git add .
时,git status
必须说明这一点:
C:\HOMEWARE\git\tests\p2>git status
# On branch exp
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: f2/f1b.txt
#
# Changed but not updated:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# deleted: f1/f1a.txt
# deleted: f1/f1b.txt
#
工作树删除了第一个目录。
因此,当您切换回master时,保留了该工作树:
C:\HOMEWARE\git\tests\p2>git checkout master
D f1/f1a.txt
D f1/f1b.txt
Switched to branch 'master'
因此'f1
'消失......