1. 程式人生 > 其它 >【git】多人程式碼協同工作方式總結

【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開始關注他們。

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進行遠端文件管理的一種方法。

參考連結