【git】多人程式碼協同工作方式總結
文件編號 O.C.6.01-1
專案名稱 | P2P線上交易平臺 | ||
---|---|---|---|
文件名稱 | 多人程式碼協同工作方式調研 | ||
作者 | 鹽析 | ||
最後更新時間 | 2021-11-22 | ||
版本更新概要 | |||
版本號 | 時間 | 更新人 | 更新摘要 |
V0.1 | 2021-11-22 | 鹽析 | 協同工作調研初版 |
V0.2 |
版本控制簡介
GibHub的名字源於Git,Git是一個分散式版本控制系統,讓程式設計師團隊能夠協作開發專案,Git幫助大家管理為專案所做的工作,避免一個人所做的修改影響其他人所做的修改。你在專案中實現一個新功能的時候,Git將跟蹤你對每個檔案所做的修改。確定程式碼可行後,你將提交所做的修改,而Git將記錄專案最新的狀態,如果你犯了錯,想撤銷所做的修改,可輕鬆的返回以前的任何可行狀態。
Git下載安裝(windows版本)
下載連結:https://git-scm.com/downloads
下載安裝成功後,在Windows欄找到Git,選擇git bash,即可開啟命令列介面
下載安裝完成後,首先要進行git配置,在命令列中輸入:
git config --global user.name "pzqu"
git config --global user.email [email protected]
以後你所有的專案都會預設使用這裡配置的使用者資訊。
Gitee遠端倉庫
首先在https://gitee.com/註冊登入後,你可以建立自己的倉庫或加入其他倉庫,倉庫管理者可以共同編輯倉庫內的程式碼。
建立新倉庫後,初始化README.MD檔案。
Git常用命令
新建倉庫
在本機開啟一個資料夾作為本地git倉庫,右鍵git bash here,即可在該目錄下開啟git bash
初始化&分支介紹
對於一個尚未初始化的目錄,我們需要輸入以下來初始化倉庫:
git init
便在本地建立了一個空的git倉庫,此時目錄下的檔案是不會被放到倉庫中的。
(main)為此時所建立的分支,main/master為預設分支,通常開發者分支被命名為dev,常用分支命名如下:
建立及切換本地分支的命令如下:
新增檔案到本地倉庫
git add .
“.“代表當前目錄下全部檔案,工作區(即當前檔案目錄)跟蹤的檔案都加入到倉庫暫存區
git commit -m "second commit"
這時,在上一步新增到暫存區的檔案加入到本地版本庫。引號內的內容為對當前提交的版本說明,比如你改了什麼bug,增加了什麼檔案,什麼特性,都要寫出來。
編輯遠端倉庫(拉取)
要知道,假如你的合作伙伴在遠端建立了一個倉庫,其中已經添加了他的一些檔案。這時,如果按照上一節的操作直接git init,新增自己的檔案,此時若想直接將你的版本推到遠端,git會提示“你的提交與對方版本衝突”,因為你們相當於兩個獨立的倉庫,不能隨意合併到一起。
那麼如果你想直接在你們已有工作的基礎上新增或編輯要怎麼辦呢?
git clone https://gitee.com/sun_yu_xin/test
若你要拉取的連線是私有倉庫,則需要保證你是該倉庫的管理員或擁有者,本地會要求你輸入使用者名稱密碼,輸入後即可成功拉取。
更新遠端倉庫
首先要在本地新增想要連線的遠端倉庫:
遠端倉庫可以使用github,gitee,coding.net等,我們使用gitee。
git remote add neutalk https://github.com/fighterkaka22/NeuTalk_mainwindow
然後使用git pull確保你與遠端版本一致,若遠端版本提前或落後於本地,則會提示版本衝突,無法提交。
git pull --rebase neutalk main(前是倉庫名,後是分支名)
然後將本地與遠端分支名對應起來。
git branch --set-upstream-to=main main(前是本地分支名,後是遠端分支名,可以不一致)
最後git push即可將修改後的成功推到遠端倉庫。
git push --set-upstream neutalk main
此時檢視遠端分支,可以發現:
補充資料
Fork與Pull Request
對於別人的遠端倉庫,可以單擊Fork在複製對方的倉庫到你的倉庫,其中程式碼是對方倉庫已有的程式碼。
這時你fork的這個倉庫屬於你自己,所擁有的許可權也大於對方的倉庫。(比如,原來你編輯不了對方的倉庫,但你可以編輯你fork之後的倉庫)所以,可以fork來對方的倉庫,自己做開發並遠端提交。
當你開發對方的倉庫,如果想將你的更新匯入到對方的倉庫,以此讓更多人看到你的創新,也相當於對他人工作的一種更新,可以使用pull request:
填寫好對應資訊並提交後,等待倉庫擁有者稽核。若稽核通過且你修改後的程式碼與其版本無衝突,可以將你的修改併入對方的倉庫,即你也成為了開發者之一。
.gitignore檔案
Git是跟蹤專案中所有檔案的好工具,但是,您會希望在專案的整個生命週期中不要跟蹤某些檔案及其變更。例如:
- 系統檔案(i.e. Mac系統的.Ds_Store)
- 應用程式配置檔案(i.e. app.config, .env)
- 構建元件(i.e. *.pyc)
- 安裝的依賴(i.e. node_modules)
- 個人檔案(i.e. todo.txt)
- 應用程式資料和日誌(i.e. .log,.sqlite)
Git 中 gitignore 概念:以.gitignore檔案定義哪些檔案將被 Git 排除跟蹤, 被.gitignore匹配到的檔案將不會顯示在 Git 的Untracked files列表。
.gitignore檔案的寫法見https://blog.csdn.net/wnvalentin/article/details/105448739
issues與wiki
當你在遠端倉庫發現程式碼BUG,但是目前沒有成型程式碼,需要討論時;或者使用開源專案出現問題時,需要使用issues。
使用方法:https://blog.csdn.net/cool99781/article/details/105821546
wiki是git進行遠端文件管理的一種方法。
參考連結
- https://www.cnblogs.com/wj-1314/p/7992543.html
- https://blog.csdn.net/qq_33858250/article/details/81047883
- https://zhuanlan.zhihu.com/p/64493730
- https://www.cnblogs.com/fighterkaka22/p/11801395.html
- https://www.cnblogs.com/fighterkaka22/p/15195681.html
- https://www.cnblogs.com/wj-1314/p/7992543.html
- https://blog.csdn.net/wnvalentin/article/details/105448739