2010-06-09 62 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