Ubuntu環境下C++項目版本控制指南(以Git為核心)
在Ubuntu終端中執行以下命令,通過包管理器安裝Git:
sudo apt update && sudo apt install git
安裝完成后,可通過git --version
驗證是否安裝成功。
設置用戶名和郵箱(用于標識提交者,必填):
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
可通過git config --list
查看配置是否生效。
進入C++項目根目錄(如MyCppProject
),執行以下命令初始化Git倉庫:
cd /path/to/your/cpp/project
git init
這會在項目目錄下生成一個隱藏的.git
文件夾,用于存儲版本歷史。
若需團隊協作或云端備份,可在GitHub/GitLab等平臺創建遠程倉庫(如https://github.com/username/repo.git
),然后關聯本地倉庫:
git remote add origin https://github.com/username/repo.git
關聯后,可通過git remote -v
查看遠程倉庫地址。
main.cpp
、CMakeLists.txt
)添加到暫存區,可使用git add .
(添加所有文件)或git add filename.cpp
(添加特定文件)。git commit -m "Add main.cpp and CMakeLists.txt"
)。分支用于隔離不同功能的開發,避免影響主分支(通常為main
或master
):
git checkout -b feature/new-feature
(feature/new-feature
為分支名,可根據功能命名)。git checkout main
(切換回主分支)。git merge feature/new-feature
。git branch -d feature/new-feature
(僅刪除已合并的分支)。創建.gitignore
文件(位于項目根目錄),列出無需版本控制的文件/目錄(如編譯生成的*.o
、*.exe
,臨時文件*.log
,依賴目錄build/
):
*.o
*.exe
build/
*.log
這可避免將無用文件納入版本歷史,保持倉庫整潔。
git log
(顯示所有提交的哈希值、作者、時間及信息)。git log --oneline
(每條提交僅顯示哈希值前7位和信息)。git status
(顯示未提交的更改、暫存區狀態等)。當多人協作或分支合并時,若同一文件的同一區域被修改,會引發沖突。Git會在沖突文件中標記沖突位置(如<<<<<<< HEAD
、=======
、>>>>>>> feature-branch
),需手動編輯文件解決沖突,然后執行:
git add <conflicted-file> # 標記沖突已解決
git commit -m "Resolve merge conflict" # 提交合并結果
git push -u origin main
(首次推送需用-u
關聯遠程分支,后續可直接git push
)。git pull origin main
(在開始工作前執行,避免代碼沖突)。