之前一直在項目中使用SVN..感受真的很好用,無論是切分支,合併分支,編輯衝突,仍是更新代碼什麼的都感受很方便...如今新公司項目裏使用git...我本身雖然用過,可是多人合做一直沒用過.因此遇到了一個很蛋疼的問題百度一直沒有答案,今天偶然發現了一個解決辦法.java
項目裏確定有不少配置文件,常常會有一些同窗不當心上傳本身的配置,我本地也修改過這個配置而且不打算提交,可是別人提交的新的版本里有這個文件,而後整個版本我都不能pull下來,由於會提示你當前的修改會被覆蓋.git
好比我有這麼一個文件緩存
eclipse裏修改,可是不提交.服務器
而後我在別的倉庫裏修改並提交遠程app
這個時候pull代碼會報錯(與資源庫同步視圖裏merge操做).eclipse
由於這個文件沒提交.reset我確定是不想作的,由於個人修改就沒了.commit我也不想作,由於我我的配置不想上傳到服務器的版本中去.工具
因此應該選stash就是暫存當前這個文件.3d
這個時候eclipse裏的那個java文件會被還原,同時會多一個stash的記錄,保存着前面被還原的文件.blog
由於這個時候文件已經被還原了,以及和之前的歷史版本一致,因此能夠pull了.咱們執行pullip
更新完之後..咱們能夠再把剛纔stash的文件pop出來.
在以前那個stash@{0}上面右鍵 apply stashed changes
會提示衝突.很正常....
也有可能不會有衝突..有衝突的話要本身去解決.沒有衝突的話那就沒啥問題了.
在TestGit上右鍵mergeTool就能夠編輯衝突了..
左邊文件是別人那裏提交的,右邊是我stash的.
編輯好之後右鍵TestGit選擇mark as merged就OK了
這個時候就成功更新了別人的代碼,而且沒有提交本身的修改了...
1.這點我感受仍是SVN好用...能夠選擇直接不更新這個配置文件,使用本身的本地配置,同時更新版本中的其餘文件(也有多是我GIT用的不熟沒發現這個功能)
2.合併的時候感受沒SVN好用.SVN能夠再eclipse裏列出服務器版本,個人版本,合併後的版本,我再egit裏無法操做,要用外部的工具,好比beyondcompare.可是這樣的話代碼着色功能就沒了.很蛋疼.
3.stash好像蠻好用,能夠緩存一堆文件,還能夠有N個stash要哪一個就彈出哪一個...這樣真的挺好的,我能夠stash N個不一樣的配置...就是不知道這樣是否是正確用法...