Git典型使用場景相關命令
- 1 建立本地倉庫與遠程倉庫的聯系
- 2 作為開發者參與項目的常用命令
- 2-1 一般步驟
- 2-2 **合并與同步主分支改動**
- 2-3 **查看日志和差異**
- 2-4 **提交后想修改或撤銷**
- 2-5 分支管理
- 2-6 清除未被追蹤的文件(謹慎使用)
- 3 作為遠程倉庫管理者如何管理
- 3-1 開發者提交代碼后,管理者的常規處理流程
- 3-2 管理者的日常維護職責
- 3-3 管理者應關注的最佳實踐
- 3-4 補充
- 4 作為普通貢獻者如何參與項目
- 4-1 Fork 并 Clone 項目
- 4-2 創建分支,開發功能
- 4-3 推送分支并發起 Pull Request
- 4-4 等待審核與合并
- 4-5 PR 被合并后,清理本地和遠程分支
- 4-6 小結
1 建立本地倉庫與遠程倉庫的聯系
step1
:初始化本地倉庫。這將在當前目錄創建一個.git
文件夾,使該目錄成為 Git 的本地倉庫。
git init
step2
:添加遠程倉庫地址(設置“遠程倉庫”)
git remote add origin https://github.com/yourname/yourrepo.git
origin
:是遠程倉庫的默認名稱(你也可以改為別的名字,但推薦保留 origin)。
https://...git
:是遠程倉庫的克隆地址(可以是 HTTPS 或 SSH)。
可以通過以下命令查看遠程倉庫是否添加成功:
git remote -v
step3
:將本地代碼提交并推送到遠程倉庫(首次)
- 添加文件并提交到本地倉庫:
git add .
git commit -m "Initial commit"
- 推送到遠程倉庫并建立關聯(首次推送時需要):
git push -u origin master
或者 git push -u origin main
-u
參數的作用:建立本地分支與遠程分支的追蹤關系。以后可以直接用 git push
、git pull
,不用再每次都加遠程名和分支名。
step4
:之后每次更新,只需:
git add .
git commit -m "your message"
git push
如果是先在 GitHub 上建的倉庫,再克隆下來:
git clone https://github.com/yourname/yourrepo.git
此時遠程地址已經自動關聯好了
2 作為開發者參與項目的常用命令
2-1 一般步驟
step1
:首次配置(只需配置一次)
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
step2
:克隆項目(從遠程獲取代碼)
git clone https://github.com/yourname/yourproject.git
cd yourproject
step3
:開發過程中的常用操作
- 查看當前狀態
git status
- 拉取最新遠程改動(建議先同步再修改)
git pull
- 新建并切換到新分支開發
git checkout -b feature/your-feature-name
- 添加修改的文件(所有修改)
git add .
或只添加指定文件:
git add file.txt
- 提交修改
git commit -m "描述清晰的提交信息"
- 推送分支到遠程
git push origin feature/your-feature-name
2-2 合并與同步主分支改動
- 切換到主分支
git checkout main # 或 master
- 拉取主分支最新代碼
git pull
- 切換回功能分支并合并主分支
git checkout feature/your-feature-name
git merge main
2-3 查看日志和差異
- 查看提交歷史
git log --oneline --graph --all
- 查看某個文件的修改差異
git diff file.txt
2-4 提交后想修改或撤銷
- 修改上一次提交信息(未 push)
git commit --amend
- 撤銷某次提交(保留修改)
git reset --soft HEAD~1
2-5 分支管理
- 查看所有分支
git branch -a
- 刪除本地分支
git branch -d feature/xxx
- 刪除遠程分支
git push origin --delete feature/xxx
2-6 清除未被追蹤的文件(謹慎使用)
git clean -fd
3 作為遠程倉庫管理者如何管理
3-1 開發者提交代碼后,管理者的常規處理流程
開發者提交方式:
- 推送分支到遠程(如
feature/login
) - 或發起 Pull Request / Merge Request(如 GitHub、GitLab)
管理者的處理流程:
- 獲取開發者提交的代碼
git fetch origin
# 從遠程倉庫 `origin` 獲取最新的分支和提交記錄,但不會自動合并到當前分支。
# `origin`:是遠程倉庫的默認名稱。
# 這個命令會同步遠程倉庫的更新到本地的 `.git` 數據庫中,比如遠程的新分支、提交記錄等。
# 不會改變當前工作目錄里的任何文件或分支狀態。
# 相當于“悄悄地更新了遠程倉庫信息”,不動你的代碼。git checkout feature/login
# 切換到名為 `feature/login` 的本地分支。
# 如果這個分支是遠程新創建的、本地還沒有,那么需要加上 `-t`(跟蹤遠程分支):
# git checkout -t origin/feature/login 或 git switch -c feature/login origin/feature/login
上述命令的含義:
- 從遠程拉取所有更新信息;
- 切換到一個你想要查看或工作的分支(比如某個開發者提交的
feature/login
分支);
如果本地沒有該分支,推薦完整做法:
git fetch origin
git checkout -b feature/login origin/feature/login# `-b feature/login`:創建本地分支;
# `origin/feature/login`:指定跟蹤哪個遠程分支。
- 代碼審查
- 使用 GitHub/GitLab/Gitea/Bitbucket 的 Web 界面查看修改、討論、留言。
- 可以用如下命令本地查看差異:
git diff main...feature/login
- 測試/驗證
- 管理者會在本地或 CI/CD 環境中 運行測試。
- 檢查是否有語法錯誤、邏輯問題、性能下降等。
- 合并代碼
合并分支回主分支(如main
)有幾種方式:
合并方式 | 命令 / 操作 | 特點 |
---|---|---|
普通合并(推薦) | git merge feature/login | 保留歷史,產生合并 commit |
重寫歷史合并 | git rebase feature/login | 整理提交歷史,可能引發沖突 |
GitHub 操作 | 點擊 “Merge pull request” | 自動合并,支持 squash/rebase |
3-2 管理者的日常維護職責
任務 | 命令 / 工具 | 說明 |
---|---|---|
刪除合并完成的遠程分支 | git push origin --delete xxx | 清理無用分支 |
查看提交日志 | git log --oneline --graph | 檢查分支和合并歷史 |
強制標準命名和保護策略 | GitHub 分支保護設置 | 防止直接向 main 推送 |
回滾誤提交 | git revert / git reset | 根據情況決定是否保留歷史 |
添加 tag / 發布版本 | git tag v1.0.0 && git push --tags | 版本管理 |
配置 CI/CD 檢查每次 PR | GitHub Actions / GitLab CI 等 | 自動測試、構建、部署 |
3-3 管理者應關注的最佳實踐
- 分支命名規范化(如:
feature/
,bugfix/
,release/
) - 強制 code review 和 CI 通過后再合并
- 禁止直接 push 到 main
- 定期清理 stale 分支
- 發布版本前打 tag
- 用 squash 合并清理歷史
3-4 補充
當有 Pull Request 時,管理員可以:
- Merge:保留所有 commit
- Squash and merge:將所有 commit 合并為一個(常用于整理歷史)
- Rebase and merge:將每個提交 replay 到主分支后面(清潔但可能有沖突)
4 作為普通貢獻者如何參與項目
4-1 Fork 并 Clone 項目
- 點擊 GitHub 項目頁面的
Fork
按鈕
這會把主項目復制一份到你的 GitHub 賬戶,例如:
- 原倉庫:
https://github.com/openai/project.git
- 你的 Fork:
https://github.com/yourname/project.git
- Clone 你的 Fork 到本地
git clone https://github.com/owner/project.git
cd project
- 添加主項目作為遠程源(方便同步主倉庫更新)
git remote add upstream https://github.com/openai/project.git
檢查遠程列表:
git remote -v
# origin https://github.com/yourname/project.git
# upstream https://github.com/openai/project.git
4-2 創建分支,開發功能
- 同步主項目更新(可選)
git checkout main
git fetch upstream
git merge upstream/main
或直接重設為一致:
git reset --hard upstream/main
- 創建新功能分支(不要在 main 上開發)
git checkout -b feature/your-task-name
- 開發 & 提交
git add .
git commit -m "Add XXX feature"
可以多次 commit,保持粒度清晰。
4-3 推送分支并發起 Pull Request
- 推送分支到你自己的遠程倉庫(origin)
git push -u origin feature/your-task-name
- 在 GitHub 網頁上,點擊 “Compare & pull request” 按鈕
填寫描述 → 選擇目標是主項目的 main
分支 → 提交 PR
4-4 等待審核與合并
- 保持關注 PR 狀態,維護者可能會提出修改建議
- 可以在本地繼續修改再
git push
到同一分支,PR 會自動更新
4-5 PR 被合并后,清理本地和遠程分支
git checkout main
git pull upstream maingit branch -d feature/your-task-name
git push origin --delete feature/your-task-name
4-6 小結
fork 主倉庫↓
clone 自己的 fork↓
添加主倉庫為 upstream(可選)↓
新建 feature 分支 → 修改 → commit↓
push 到 origin(你的倉庫)↓
發起 PR 到主項目的 main 分支↓
等待審核 → 被合并↓
刪除舊分支,準備下一個任務
常用命令參考
操作 | 命令 |
---|---|
添加主項目為 upstream | git remote add upstream <主項目地址> |
同步主項目代碼 | git fetch upstream && git merge |
新建分支 | git checkout -b feature/xxx |
提交修改 | git add . && git commit -m "message" |
推送分支 | git push -u origin feature/xxx |
刪除遠程分支 | git push origin --delete feature/xxx |