我們假設我一直在使用一個功能分支並在那裏添加了一些文件。他們成功承諾和推動。現在我通過git checkout master
切換到主,但所有文件都添加到一個功能分支仍然存在(物理,而不是在git中)。要擺脫他們,我必須撥打git clean -fd
。如何在切換分支時獲得乾淨的副本?
每次都很煩人。我預計像git checkout master -clean
應該存在,但似乎並非如此。
我錯過了什麼嗎?
我們假設我一直在使用一個功能分支並在那裏添加了一些文件。他們成功承諾和推動。現在我通過git checkout master
切換到主,但所有文件都添加到一個功能分支仍然存在(物理,而不是在git中)。要擺脫他們,我必須撥打git clean -fd
。如何在切換分支時獲得乾淨的副本?
每次都很煩人。我預計像git checkout master -clean
應該存在,但似乎並非如此。
我錯過了什麼嗎?
他們成功提交和推送
確保您提交的所有變化。
$ git checkout feature
$ git status # see if all changes are committed
如果您有未提交的更改,然後stash
他們,然後再結帳到其他(比如,master
)分支
$ git add .
$ git stash
$ git status # working directory should be clean now
$ git checkout master
或者,也可以代替hard reset HEAD
stash
$ git reset --hard HEAD # back working directory to last commit
$ git status
$ git checkout master
注意:hard reset
有潛在的危險,因爲它移開你的未落實的變化。
這裏,按以下順序按預期運行:
$ git status
old_b
$ git checkout -b nu_branch
$ echo "content" > fred
$ git add fred
$ git commit -m "added fred"
$ git checkout old_b
$ \ls fred 2> /dev/null | wc -l
0
我說你承擔太多。當你犯下這個錯誤時,你可能不在新的分支上。
你說得對。我的錯。這些文件沒有提交。 – SiberianGuy