六、Git多人开发: 把同一文件改成了不同的文件名如何处理?
@Author:Runsen
把同一文件改成了不同的文件名如何處理?
我們接著上面的話題,如果把同一文件改成了不同的文件名,如何處理?
小A和小B首先對使用git pull命令同步下。小Auser.htm改為user1.html并提交上去。
YIUYE@DESKTOP-5EEO47M MINGW64 ~/Desktop/A/muli_person_test (dev) $ git mv user.htm user1.htmYIUYE@DESKTOP-5EEO47M MINGW64 ~/Desktop/A/muli_person_test (dev) $ git commit -m "Mv user to user1" [dev 33bd75a] Mv user to user11 file changed, 0 insertions(+), 0 deletions(-)rename user.htm => user1.htm (100%)YIUYE@DESKTOP-5EEO47M MINGW64 ~/Desktop/A/muli_person_test (dev) $ git push Counting objects: 2, done. Delta compression using up to 12 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (2/2), 254 bytes | 0 bytes/s, done. Total 2 (delta 1), reused 0 (delta 0) remote: Powered by GITEE.COM [GNK-5.0] To https://gitee.com/MaoliRUNsen/muli_person_testbd39f70..33bd75a dev -> dev小B將user.htm改為user2.html,大家可以想象一下如果小B提交了,會報什么錯。
maoli@ubuntu:~/B/muli_person_test$ git mv user.htm user2.htm maoli@ubuntu:~/B/muli_person_test$ git commit -m "mv user to user2" [dev 8f596e6] mv user to user21 file changed, 0 insertions(+), 0 deletions(-)rename user.htm => user2.htm (100%)maoli@ubuntu:~/B/muli_person_test$ git push To https://gitee.com/MaoliRUNsen/muli_person_test! [rejected] dev -> dev (fetch first) error: 無法推送一些引用到 'https://gitee.com/MaoliRUNsen/muli_person_test' 提示:更新被拒絕,因為遠程倉庫包含您本地尚不存在的提交。這通常是因為另外 提示:一個倉庫已向該引用進行了推送。再次推送前,您可能需要先整合遠程變更 提示:(如 'git pull ...')。 提示:詳見 'git push --help' 中的 'Note about fast-forwards' 小節。此時,會報錯,出現non fast-forward的錯誤提示,小B解決的方法就是趕緊pull。
maoli@ubuntu:~/B/muli_person_test$ git pullremote: Enumerating objects: 3, done. remote: Counting objects: 100% (3/3), done. remote: Compressing objects: 100% (2/2), done. remote: Total 2 (delta 1), reused 0 (delta 0), pack-reused 0 展開對象中: 100% (2/2), 完成. 來自 https://gitee.com/MaoliRUNsen/muli_person_testbd39f70..33bd75a dev -> origin/dev 沖突(重命名/重命名):在分支 "HEAD" 中重命名 "user.htm"->"user2.htm",在分支 "33bd75af89ecd33ba72615af1b65d833d7e445b4" 中重命名 "user.htm"->"user1.htm" 自動合并失敗,修正沖突然后提交修正的結果。這個時候Git報沖突 了,
maoli@ubuntu:~/B/muli_person_test$ ls -al 總用量 40 drwxrwxr-x 4 maoli maoli 4096 8月 23 17:50 . drwxrwxr-x 3 maoli maoli 4096 8月 21 15:55 .. drwxrwxr-x 8 maoli maoli 4096 8月 23 17:50 .git drwxrwxr-x 2 maoli maoli 4096 8月 21 15:55 .gitee -rw-rw-r-- 1 maoli maoli 960 8月 21 15:55 README.en.md -rw-rw-r-- 1 maoli maoli 1328 8月 21 15:55 README.md -rw-rw-r-- 1 maoli maoli 91 8月 21 17:43 register.html -rw-rw-r-- 1 maoli maoli 128 8月 23 17:50 user1.htm -rw-rw-r-- 1 maoli maoli 150 8月 23 17:50 user2.htm這個時候通過git status查看狀態,發現小A想改為user1.htm,小B自己想改為user2.htm
maoli@ubuntu:~/B/muli_person_test$ git status 位于分支 dev 您的分支和 'origin/dev' 出現了偏離, 并且分別有 3 和 1 處不同的提交。(使用 "git pull" 來合并遠程分支) 您有尚未合并的路徑。(解決沖突并運行 "git commit")未合并的路徑:(酌情使用 "git add/rm <文件>..." 標記解決方案)雙方刪除: user.htm由他們添加: user1.htm由我們添加: user2.htm修改尚未加入提交(使用 "git add" 和/或 "git commit -a")經過和小A的交流后,最后決定將文件改為成user1.htm,于是小B通過git rm將user.htm和user2.htm刪除。
maoli@ubuntu:~/B/muli_person_test$ git rm user.htm user.htm: needs merge rm 'user.htm' maoli@ubuntu:~/B/muli_person_test$ git rm user2.htm user2.htm: needs merge rm 'user2.htm'這里模擬了兩個人(我的兩個賬號),小A和小B協作開發,其實再多人也是一樣,就不模擬了,模擬多了容易精神分裂變戲精。希望通過這一篇讓大家了解工作中使用git的方式。
git系列就到這里結束了,當然git還有很多內容,這個系列只是為了讓大家快速掌握,并能在實際開發中使用。說白了git只是一款工具,我們這里也使用了gitee作為遠程倉庫,其實github,gitlib都是一樣的,這些國外的遠程倉庫眾所周知的原因網速比較慢,經常會訪問不了。也有企業不愿公開源碼,又不愿花錢,會搭建自己的內網git倉庫,怎么搭建其實大家不用太關心,一般都搭建好了,如果想學習的話,自己搜索一下資料,非常方便的,用法其實也是一樣的。
參考:極客時間玩轉Git三劍客。作者蘇玲,
攜程代碼平臺負責人
總結
以上是生活随笔為你收集整理的六、Git多人开发: 把同一文件改成了不同的文件名如何处理?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 马自达自带导航怎么开通?
- 下一篇: 二、Git多人开发:不同人修改了不同文件