2010-06-09 64 views
3

我发现如何使用git。Git和本地修改

我只是做了如下试验:

  1. 创建一个文件夹,2个文件
  2. 然后git的初始化,git的添加,git的承诺-m “初始提交”
  3. 创建一个分支:混帐。分支实验,git的结帐实验
  4. 然后更改文件夹的名称,并删除其中一个文件,然后git的添加,git的承诺-m“实验”
  5. 回到主:git的结帐马斯特[R

    惊喜:当我离开它,我不找师傅;该文件夹已经消失。我必须做一个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

你与两个文件的文件夹不见了主分支?切换分支之前是否还有其他更改? – 2010-06-09 05:41:55

回答

2

这将是因为difference between git add . and git add -A的。

唯一的Git添加-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 
# 

工作树起了第一目录中删除。

因此,当你切换回主,那个工作树被保留下来:

C:\HOMEWARE\git\tests\p2>git checkout master 
D  f1/f1a.txt 
D  f1/f1b.txt 
Switched to branch 'master' 

。因此“f1”消失......当你回到

+0

或者使用git mv和git rm -f。 – p00ya 2010-06-09 05:45:20

+0

@ p00ya:同意了,我只是想说明OP的命令刚刚发生了什么。 – VonC 2010-06-09 05:46:40

+0

谢谢,就是这样。 只是想知道为什么 - 它不是默认行为。 – peyman 2010-06-09 07:27:38