2014-02-19 101 views
0

全部, 我剛剛與git發生了重大事故,我對發生了什麼/我做錯了什麼感到困惑。Git存儲和分支

我有兩個文件,我一直在努力:classA.cppclassA.h。我需要與同事合併。所以...

git stash 
git pull origin master 

現在我有了我的同事的最新工作。我從存儲中獲得了更改。

git stash pop 

在這一點上,我想我應該正確使用git,所以我努力做出一個新的分支。

git branch MyChange 
git checkout MyChange 
git status 

Git狀態顯示我的兩個(unstaged)修改文件。

git checkout master 
git status 

Git狀態顯示(再次)兩個未分離的修改文件。

git checkout -- . 

Git狀態顯示修改過的文件已被倒回。

git checkout MyChange 

修改後的文件已被刪除!?!?有沒有搞錯!?!我的想法出錯了,我認爲改變分支不會影響其他分支。

回答

1

你做不是更改分支,你確實改變了你的工作樹。沒有添加到暫存區域或提交的新文件/更改不會被跟蹤,也不會被git保存。

+0

雖然文件被跟蹤。已修改但未提交。 – Constantin

+0

所以我不得不至少要git添加[修改文件],然後切換回來?在那之前,兩個分支都指向歷史上的同一個點? – Constantin

+0

@Constantin除非你以某種方式保存你在git中的改變,否則你的工作樹是不穩定的,因爲git不知道這些改變。 – TimWolla