2016-12-14 113 views
1

我是aare,我忘了如何GIT。不小心我從我的分支中刪除了所有未跟蹤的文件,唯一的辦法是再次克隆回購。完成與主分支清潔回購後,我開始創建新的分支...GIT:從主分支可見的變化

...但正如我所提到的,可能我忘了如何GIT。

我被

git checkout HEAD~1 -b personal/$USER/featureX2 

然後

git pull origin master 

創建分支做了一些變化,腳本分支上後,並將其保存在eclipse(則u與紅色字體git的狀態看什麼應該被添加到提交),我不應該能夠在沒有提交的情況下重新簽出。但...

我沒有問題的結賬,甚至更多,未保存的更改也在主分支上,因爲我在git狀態中看到。

我做錯了什麼?或者,如果我不能改變我的結果而不能結賬到另一個分支?

+0

你是什麼意思「將它們保存在該分支上」? – choroba

+0

我編輯了它 – Elcardia

+0

如果您在分支中修改了主文件中沒有的文件,您將無法切換,因爲主文件具有較新版本的衝突文件。如果你的修改文件超過了主版本的最新版本,那麼你將能夠切換。這可能是http://stackoverflow.com/questions/8526279/git-allows-for-branch-change-with-unstaged-changes的重複。 – afxentios

回答

0

Git在此處的行爲如預期。 Git不會跟蹤Untracked文件(紅色字體...)。因此,當試圖結帳master時,它可以防止相同文件/行(衝突)中可能發生更改。

而當checkoutone branch to another,未跟蹤的文件隨之而來。

您可以commit更改或save未追蹤的文件臨時(stash)。

$ git checkout branch-1 
# do some changes here 

$ git add . 
$ git stash save 'my-temporary-change' # stash -> save the changes in temporary box 
# now untracked files are gone and save to stash stack 

$ git checkout master 

# if you need to take the temporary changes, just by 'stash pop' you can get them back in any branch 
$ git stash list  # see all stash stack list 
$ git stash pop  # pop the last one from stash stack, pop = apply + drop 
0

實際上當大部分時間沒有提交更改時,允許從一個分支檢查到另一個分支,但可能會有衝突。
如果你這樣做,成功,然後因爲你的工作目錄不乾淨,你可以看到每個分支的變化。
一旦你在一個分支上提交它們,你將只能看到該分支上的更改〜