Git 從零開始:完整項目上傳指南

一、準備工作

1. 安裝 Git

  • Windows:下載安裝包
  • macOS:在終端運行 brew install git
  • Linux
# Ubuntu/Debian
sudo apt update && sudo apt install git# CentOS/Fedora
sudo yum install git

2. 配置用戶信息(首次使用)

git config --global user.name "你的名字"
git config --global user.email "你的郵箱"

3. 創建代碼倉庫(本地)

# 1. 打開終端/命令提示符
# 2. 進入項目目錄
cd /path/to/your/project# 3. 初始化Git倉庫
git init

二、添加項目文件到Git

1. 創建 .gitignore 文件(重要!)

在項目根目錄創建 .gitignore 文件,內容示例:

# 忽略系統文件
.DS_Store
Thumbs.db# 忽略編輯器文件
.idea/
.vscode/
*.swp# 忽略Python虛擬環境
venv/
.env# 忽略編譯文件
__pycache__/
*.pyc

2. 添加文件到暫存區

# 添加所有文件(排除.gitignore中的文件)
git add .# 或者添加特定文件
git add file1.py file2.js

3. 查看當前狀態

git status

綠色文件表示已添加到暫存區,紅色文件表示未跟蹤

三、創建首次提交

git commit -m "項目初始提交"

四、創建遠程倉庫(以GitHub為例)

1. 創建GitHub賬號

訪問 github.com 注冊賬號

2. 創建新倉庫

  1. 點擊右上角 ? > New repository
  2. 填寫倉庫名稱(建議與項目名一致)
  3. 選擇 Public(公開)或 Private(私有)
  4. 不要勾選 “Initialize this repository with a README”
  5. 點擊 Create repository

五、連接本地與遠程倉庫

1. 獲取遠程倉庫URL

創建成功后,復制顯示的HTTPS或SSH URL:

https://github.com/你的用戶名/倉庫名.git

2. 添加遠程倉庫

git remote add origin https://github.com/你的用戶名/倉庫名.git

3. 驗證連接

git remote -v
# 應顯示:
# originhttps://github.com/你的用戶名/倉庫名.git (fetch)
# originhttps://github.com/你的用戶名/倉庫名.git (push)

六、推送代碼到遠程倉庫

git push -u origin main

第一次推送使用 -u 參數設置跟蹤關系

七、后續開發工作流

1. 日常開發流程

# 1. 修改文件
# 2. 查看修改狀態
git status# 3. 添加修改到暫存區
git add 修改的文件名
# 或添加所有修改
git add .# 4. 提交更改
git commit -m "描述本次修改的內容"# 5. 推送到遠程
git push

2. 常用命令速查

命令用途
git diff查看未暫存的修改
git log查看提交歷史
git pull拉取遠程更新
git branch查看分支
git checkout -b 新分支創建新分支

八、重要注意事項

1. 避免上傳敏感信息

  • 不要在代碼中包含密碼、API密鑰等
  • 使用環境變量管理敏感信息
  • 如果誤上傳了敏感信息:
  1. 立即刪除文件
  2. 修改所有相關密鑰
  3. 使用 git filter-branch 從歷史記錄中清除

2. 提交規范

  • 提交信息要清晰描述修改內容
  • 使用動詞開頭:“添加”、“修復”、"更新"等
  • 示例:
git commit -m "修復用戶登錄失敗的問題"
git commit -m "添加用戶管理模塊"

3. 分支管理策略

# 創建功能分支
git checkout -b feature/new-module# 開發完成后合并到主分支
git checkout main
git merge feature/new-module# 刪除已合并的分支
git branch -d feature/new-module

九、遇到問題怎么辦?

常見問題解決:

  1. 認證失敗
  • 使用SSH代替HTTPS
  • 生成SSH密鑰:ssh-keygen -t ed25519 -C "your_email@example.com"
  • 將公鑰(~/.ssh/id_ed25519.pub)添加到GitHub賬戶設置
  1. 文件沖突
# 拉取最新代碼時解決沖突
git pull
# 手動解決沖突后
git add 沖突文件
git commit -m "解決合并沖突"
  1. 撤銷修改
# 撤銷未暫存的修改
git checkout -- 文件名# 撤銷已暫存未提交的修改
git reset HEAD 文件名

十、高級技巧(可選)

1. 使用Git GUI工具

  • GitKraken
  • Sourcetree
  • VS Code內置Git功能

2. 設置自動化鉤子

.git/hooks 中添加腳本:

# pre-commit 示例(提交前運行測試)
#!/bin/sh
pytest tests/
if [ $? -ne 0 ]; then
echo "測試失敗,提交中止"
exit 1
fi

3. 使用Git LFS管理大文件

# 安裝Git LFS
git lfs install# 跟蹤大文件類型
git lfs track "*.psd"
git lfs track "*.mp4"

完整工作流示例

# 開始新功能開發
git checkout main
git pull
git checkout -b feature/user-profile# 開發過程...
git add .
git commit -m "添加用戶資料頁面"
git push -u origin feature/user-profile# 合并到主分支
git checkout main
git pull
git merge feature/user-profile
git push# 清理分支
git branch -d feature/user-profile

通過這套流程,即使是完全的新手也能安全高效地管理項目代碼。建議開始時先在一個測試項目上練習,熟悉后再應用到正式項目中。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/91324.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/91324.shtml
英文地址,請注明出處:http://en.pswp.cn/web/91324.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【AI】入門級提示詞模板:適用于ChatGPT、文心一言等主流模型

入門級提示詞模板:適用于 ChatGPT、文心一言等主流模型**在當下這個人工智能飛速發展的時代,ChatGPT、文心一言等主流大模型已經廣泛地融入到我們的工作與生活當中。不管是創作文章、生成代碼,還是進行數據分析、獲取創意靈感,這些…

如何解決 undetected_chromedriver 啟動慢問題

要解決 undetected_chromedriver 啟動慢的問題,可以從以下幾個方面優化配置和代碼: 1. 指定本地 Chrome 二進制路徑 避免自動搜索 Chrome 路徑,直接指定位置: driver uc.Chrome(browser_executable_pathrC:\Program Files\Google…

Python 程序設計講義(42):組合數據類型——元組類型:創建元組

Python 程序設計講義(42):組合數據類型——元組類型:創建元組 目錄Python 程序設計講義(42):組合數據類型——元組類型:創建元組一、元組的特征二、創建元組1、使用圓括號&#xff0…

windows 設置 vscode 免密遠程

我們可以使用 vscode ssh 進行遠程編輯文件項目。也可以使用 ssh 密匙 來實現免密登錄。 本人在本地windows系統有多個密匙,使用 D:\SPB_Data\.ssh\id_rsa_local 進行本地設備進行登錄。 在 vscode ssh 配置文件中添加 IdentityFile 配置 Host 本地設備ipHostName …

ubuntu自動搭建Android平臺NDK編譯環境

sh setup_ndk_env.sh自動下載NDK并解壓 提取Android平臺工具鏈 驗證Android工具鏈 設置工具鏈變量 export CROSS_TRIPLE=aarch64_linux_android export CROSS_ROOT=/home/ubuntu/${CROSS_TRIPLE} export ANDROID_NDK=${CROSS_ROOT} export AS=${CROSS_ROOT}/bin/llvm-as exp…

添加捕捉吸附標識(使用QT+OpenGL開發三維CAD)

捕捉吸附標識怎么畫出來?在點吸附的時候能夠展示吸附標識可以讓用戶更直觀的看到當前捕捉點,從而更準確的進行設計和繪制。 效果視頻見原文:添加捕捉吸附標識(使用QTOpenGL開發三維CAD) 16.Add snap label 鼠標捕捉吸…

元宇宙中的“蟲洞“:技術實現、應用場景與未來挑戰

一、技術定義與核心架構1.1 蟲洞的元宇宙隱喻概念來源:蟲洞在物理學中是連接不同時空的通道,而在元宇宙中,這一概念被引申為連接不同虛擬世界的跨平臺協議。英偉達Omniverse平臺通過USD(通用場景描述)實現了這一隱喻&a…

使用GIS中基于森林的分類與回歸模型來估算房屋價值

“基于森林的分類與回歸”,它可以幫助分析師有效地設計、測試和部署預測模型。 基于森林的分類與回歸應用了 Leo Breiman 的隨機森林算法,這是一種用于分類和預測的流行監督機器學習方法。該工具允許分析師輕松整合表格屬性、基于距離的要素和解釋柵格來…

《 java 隨想錄》| LeetCode鏈表高頻考題

前言:這是專門針對java語言講解的算法解析(題目順序大致參考《代碼隨想錄》)思維導圖操作鏈表刪除節點刪除鏈表中 D 節點時,只需將其前驅節點 C 的 next 指針指向 D 的下一個節點 E。添加節點?先讓 新節點 F 的 next 指針 指向 C…

學習嵌入式的第三十一天-數據結構-(2025.7.23)網絡協議封裝

今天的內容主要是網絡協議以及常用工具的介紹。協議頭與數據封包/拆包數據封包示例:MAC|IP|TCP|hello| ———————————— IP數據報IP頭信息默認20字節常用網絡測試工具telnetnetstatpingarpwiresharktcpdumpssh2secure crt工具安裝命令sudo ufw disable sud…

STL學習(十、常用排序、拷貝、替換算法)

目錄 一、常用排序算法 1.sort (1) 內置數據類型 (2)自定義數據類型 2. random_shuffle(iterator beg, iterator end) 3.merge 4.reverse 二、常用的拷貝和替換算法 1.copy(起始不如直接賦值) 2.replace 3.replace_if 4.swap 一、常用排序算法 1.sort 函數原型 s…

【Datawhale AI夏令營】科大訊飛AI大賽(大模型技術)/夏令營:讓AI理解列車排期表(Task3)

我沒招了jpgimport pandas as pd import requests import re import json from tqdm import tqdm from datetime import datetime, timedeltadef calculate_stop_duration(arrival_time_str, departure_time_str):"""計算列車停留時長,處理跨天和異常…

【前后端】node mock.js+json-server

JSON-Server 一個在前端本地運行,可以存儲json數據的server。前端開發可以模擬服務端接口數據,在本地搭建一個JSON服務,自己產生測試數據。 使用npm全局安裝json-server :npm install -g json-server可以通過查看版本號&#xff0…

疏老師-python訓練營-Day30模塊和庫的導入

浙大疏錦行 知識點回顧: 導入官方庫的三種手段導入自定義庫/模塊的方式導入庫/模塊的核心邏輯:找到根目錄(python解釋器的目錄和終端的目錄不一致) 作業:自己新建幾個不同路徑文件嘗試下如何導入 一.學習知識點 DAY30 …

神經網絡知識討論

AI 核心任務與數據類型:特征提取核心:AI 的核心是從原始輸入數據中提取特征,CV 是將圖像數據轉換為計算機可識別的特征,NLP 是將文本數據轉換為特征,數據挖掘是將結構化數據轉換為特征。數據類型特點:圖像數…

kotlin類型可為空,進行空安全的區別

定義一個可為空的變量b(String?),默認沒有?是不可以為空的 var b: String? "Kotlin" b null print(b) // 輸出 null默認不可為空 var a: String "Kotlin" a null // 編譯器報錯,null 不能被賦給不為空的變量空安全調用&#x…

Mysql事務基礎

事務是一個不可分割的數據庫操作序列,也是數據庫并發控制的基本單位,其執行的結果必須使數據庫從一種一致性狀態變到另一種一致性狀態。事務是邏輯上的一組操作,要么都執行,要么都不執行 事務的特點 A(Atomicity&#…

FastAPI入門:安裝、Pydantic、并發和并行

本系列參考FastAPI官方文檔:https://fastapi.tiangolo.com/zh/python-types/安裝 使用pip安裝: pip install fastapi此外還需要 ASGI 服務器,生產環境可以使用 Uvicorn 或者 Hypercorn。 ASGI服務器:異步服務網關接口,…

歡樂的周末 - 華為OD統一考試(JavaScript 題解)

題目描述 小華和小為是很要好的朋友,他們約定周末一起吃飯。 通過手機交流,他們在地圖上選擇了多個聚餐地點(由于自然地形等原因,部分聚餐地點不可達)。 求小華和小為都能到達的聚餐地點有多少個? 輸入描述 第一行輸入m和n,m代表地圖的長度,n代表地圖的寬度 第二行…

算法競賽階段二-數據結構(38)數據結構動態鏈表list

動態鏈表(List)的基本概念動態鏈表是一種線性數據結構,通過節點間的指針連接實現動態內存分配。與數組不同,鏈表的大小可隨需增減,插入和刪除操作的時間復雜度為 O(1)(已知位置時),但…