Android Studio如何有步驟地解決衝突問題?

Android studio本地項目代碼同伺服器端代碼有衝突,需要解決後才能提交更改;但是被Android studio的衝突解決搞的稀里糊塗的,每次點來點去不清楚是解決了沒有,沒有形成統一的操作步驟;不知道Android Studio是否同Eclipse一樣有一套完整的解決衝突的步驟?

PS:Android Studio中應該忽略哪些文件以及如何忽略文件(我在Setting中的Ignored Files中添加忽略的文件或文件夾後,沒有什麼效果,提交或更新時還是會檢測忽略的文件或文件夾,是我少做什麼操作了嗎)?


1、在使用svn 的時候,當然update別人的代碼會彈出對話窗口提示你衝突,是否合併。合併有三種方案,accept yours 使用你的、accept theirs使用別人的版本和 merge合併。

當你選擇merge合併的時候,會彈出代碼對照合併窗口,一共是三個屏,左右兩邊的是不同的代碼,衝突的地方會被高亮顯示出來,帶有箭頭和叉叉。通過點擊箭頭將兩邊的衝突代碼添加到中間的合併區域中去,點叉叉則放棄那一段代碼。所有衝突處理完成以後merge成功。

2、建議使用git作版本控制,基本操作和svn 差不多,但你可以將代碼commit 在本地,然後再pull 倉庫裡面的代碼來進行merge,這樣就算merge 過程中點錯了什麼,也能將代碼回滾到你上次commit 的版本,再次進行pull 和 merge conflict。一般git 的操作就是先commit,然後Pull,最後push。合併衝突代碼的界面和svn 是一樣的。


「在Setting中的Ignored Files中添加忽略的文件或文件夾後,沒有什麼效果」:可能是你在添加gitignore文件之前已經提交過代碼,也就是說,如果你不慎在創建.gitignore文件之前就push了項目,那麼即使你在.gitignore文件中寫入新的過濾規則,這些規則也不會起作用,Git仍然會對所有文件進行版本管理。所以建議最好一開始就要引入gitignore文件

多人合作操作流程:

  1. 先本地直接提交和嘗試推代碼:git commit -m 注釋說明 ,git push origin master
  2. 如果別人在自己之前提交了修改,git會提示push失敗,需要先pull遠程代碼:git pull origin/master (拉取遠程倉庫進行自動合併)
    1. 如果能自動合併,git會提示auto merge成功,這時可以直接git push origin master
    2. 如果不能自動merge,git會提示auto merge失敗,需要手動解決衝突:
      1. git status 查看衝突情況
      2. 修改衝突:可以使用Android studio的可視化界面進行衝突解決
      3. git status 查看衝突解決情況
      4. git add .
      5. git commit -m 解決衝突的注釋說明
      6. git push origin master 成功推送代碼到遠程伺服器


AS的conflict merge似乎一遇到conflict的文件都要手動merge,不管是difference還是conflict都得手動?不舒服


推薦閱讀:

Android studio上面繼承BaseAdapter後怎麼才能自動生成getView等方法?
Android開發 強制退出了任務,後台顯示服務還在,但是程序裡面的Socket卻中斷了?
這種ui誰能給點思路?
如何優雅地使用Android Studio?
Android Studio 使用起來很卡,你們是如何解決的?

TAG:AndroidStudio | 代碼衝突 |