网站设计常用软件网站开发前期方案
一、Git 环境初始化与配置
1.1 安装 Git
- Windows:从 Git 官网 下载安装包,勾选 “Add Git to PATH” 简化命令行使用。
 - Linux:通过包管理器安装:
sudo apt install git(Debian/Ubuntu)或sudo yum install git(CentOS)。 - macOS:使用 Homebrew:
brew install git,或通过 Xcode Command Line Tools 安装。 
1.2 首次配置用户信息
# 设置全局用户名和邮箱(提交代码时显示的身份)
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"# 查看配置信息
git config --list
 
1.3 配置常用别名(可选)
# 简化常用命令(如用st代替status,co代替checkout)
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.cm "commit -m"
 
二、本地代码库基础操作
2.1 初始化新仓库
# 在现有项目目录中初始化Git仓库
cd /path/to/your/project
git init  # 生成.git隐藏目录(仓库核心文件)
 
2.2 工作区、暂存区、版本库关系
- 工作区:本地可见的项目文件目录。
 - 暂存区(Index):临时存储待提交的修改,通过 
git add提交到暂存区。 - 版本库(Repository):.git 目录,存储所有历史版本和元数据,通过 
git commit提交到版本库。 
2.3 基础操作流程
# 1. 创建/修改文件后,查看工作区状态
git status  # 显示未跟踪、已修改的文件# 2. 将文件添加到暂存区
git add filename.txt  # 添加单个文件
git add .  # 添加当前目录所有修改(不包括.gitignore排除的文件)
git add -u  # 只添加已跟踪文件的修改(忽略未跟踪文件)# 3. 提交暂存区内容到版本库
git commit -m "feat: 添加用户登录功能"  # -m后接提交说明(必填)# 4. 查看提交历史
git log  # 显示详细历史(按q退出)
git log --oneline  # 简洁显示每条提交(一行一条)
git log --graph --oneline  # 图形化显示分支合并历史
 
2.4 撤销操作
# 撤销工作区修改(未add的文件)
git checkout -- filename.txt  # 恢复到最近一次commit或add的状态# 撤销暂存区修改(已add但未commit)
git reset HEAD filename.txt  # 将文件从暂存区移回工作区# 撤销最近一次commit(保留修改到工作区)
git reset --soft HEAD~1  # HEAD~1表示上一个版本,~2表示上上个# 彻底回滚到某个版本(谨慎使用!会丢弃后续所有修改)
git reset --hard <commit_id>  # commit_id可通过git log获取
 
三、分支管理核心操作
3.1 分支概念与作用
- 主分支(main/master):存放稳定可发布的代码,禁止直接修改。
 - 功能分支(feature/*):开发新功能,如 
feature/user-auth。 - 修复分支(bugfix/*):修复生产环境问题,如 
bugfix/login-error。 - 发布分支(release/*):准备发布版本,如 
release/v1.0.0。 
3.2 分支操作命令
# 1. 查看分支
git branch  # 显示本地分支(当前分支前带*)
git branch -r  # 显示远程分支
git branch -a  # 显示本地+远程所有分支# 2. 创建并切换到新分支
git checkout -b feature/payment  # 等价于 git branch feature/payment + git checkout feature/payment
# 或Git 2.23+支持的新命令
git switch -c feature/payment# 3. 切换已有分支
git checkout main
# 或新命令
git switch main# 4. 删除本地分支(需先切换到其他分支)
git branch -d feature/old-feature  # -d安全删除(确保已合并)
git branch -D feature/unused-feature  # -D强制删除(未合并也可删)# 5. 合并分支(如将功能分支合并到main)
git checkout main  # 切换到目标分支
git merge feature/payment  # 合并feature/payment到当前分支# 6. 解决合并冲突
# 冲突时git status会显示冲突文件,打开文件找到<<<<< HEAD和>>>>>标记的冲突区域
# 手动编辑保留正确代码后,执行:
git add conflicted_file.txt
git commit -m "fix: 解决合并冲突"
 
四、远程仓库协作(GitHub/GitLab)
4.1 关联远程仓库
# 1. 克隆远程仓库到本地(首次获取项目)
git clone https://github.com/your-username/your-repo.git  # HTTPS方式
# 或SSH方式(需配置SSH密钥,更安全)
git clone git@github.com:your-username/your-repo.git# 2. 本地仓库关联远程仓库(已有本地仓库时)
git remote add origin https://github.com/your-username/your-repo.git
# 查看远程仓库信息
git remote -v
 
4.2 拉取与推送代码
# 1. 拉取远程分支最新代码(避免冲突)
git pull origin main  # 拉取远程main分支到本地当前分支# 2. 推送本地分支到远程
git push origin feature/payment  # 推送本地feature/payment到远程同名分支
# 首次推送新分支需设置上游关联
git push -u origin feature/payment  # 后续可直接用git push# 3. 推送标签(用于版本发布)
git tag v1.0.0  # 创建标签
git push origin v1.0.0  # 推送单个标签
git push origin --tags  # 推送所有本地标签
 
4.3 团队协作流程
- 从远程 main 分支拉取最新代码:
git pull origin main - 创建功能分支:
git switch -c feature/xxx - 开发过程中定期提交:
git add . && git cm "xxx" - 开发完成后拉取远程 main 分支更新:
git pull origin main(解决本地冲突) - 推送功能分支到远程:
git push -u origin feature/xxx - 在 GitHub/GitLab 上发起 Pull Request(PR)/Merge Request(MR)
 - 代码审核通过后合并到 main 分支,删除功能分支。
 
五、高效技巧与问题排查
5.1 .gitignore 文件配置
创建 .gitignore 文件排除无需跟踪的文件(如编译产物、日志、IDE 配置):
# .gitignore示例
# 排除编译生成的目录
build/
dist/
# 排除日志文件
*.log
# 排除IDE配置(VS Code)
.vscode/
# 排除特定语言文件
__pycache__/  # Python
node_modules/  # Node.js
 
5.2 stash 暂存工作区
临时切换分支时,可暂存未提交的修改:
# 暂存当前工作区修改
git stash save "暂存登录功能的半成品"# 查看所有stash
git stash list# 恢复最近一次stash并删除stash记录
git stash pop# 恢复指定stash(如stash@{1})
git stash apply stash@{1}  # apply保留stash,pop删除stash
 
5.3 查看文件修改内容
# 查看工作区与暂存区的差异
git diff filename.txt# 查看暂存区与版本库的差异
git diff --cached filename.txt# 查看工作区与版本库最近一次commit的差异
git diff HEAD filename.txt# 查看两个版本之间的差异
git diff <commit_id1> <commit_id2>
 
5.4 常见问题解决
-  
提交信息写错:
git commit --amend -m "correct message"(仅修改最近一次未推送的 commit) -  
误删分支恢复:
找到分支最后一次提交的 commit_id:git reflog,然后恢复:git checkout -b recover-branch <commit_id> -  
本地分支与远程分支不一致:
拉取时强制覆盖:git pull origin main --rebase(rebase 方式合并,保持历史整洁) -  
撤销已推送的 commit:
创建新 commit 抵消旧修改:git revert <commit_id>(安全,不修改历史) 
六、进阶操作:Rebase 与 Cherry-pick
6.1 Rebase(变基)保持历史整洁
相比 merge 的 “分叉历史”,rebase 可将分支修改 “嫁接” 到目标分支上,形成线性历史:
# 在功能分支上rebase到main,避免合并节点过多
git switch feature/payment
git rebase main  # 将main的最新修改合并到当前分支,解决冲突后继续
# 冲突解决后:git add . && git rebase --continue
# 放弃rebase:git rebase --abort# 推送rebase后的分支(需强制推送,谨慎!)
git push origin feature/payment --force-with-lease  # 比--force更安全
 
6.2 Cherry-pick(挑选提交)
将某个分支的特定 commit 应用到当前分支:
# 1. 在源分支查看commit_id
git log --oneline feature/bugfix  # 假设目标commit_id是abc123# 2. 切换到目标分支
git switch main# 3. 应用该commit
git cherry-pick abc123  # 若冲突,解决后git add . && git cherry-pick --continue
 
七、Git 命令速查表
| 功能分类 | 常用命令 | 
|---|---|
| 配置 | git config --global user.name "Name"、git config --list | 
| 初始化与克隆 | git init、git clone <url> | 
| 暂存与提交 | git add <file>、git commit -m "msg"、git status | 
| 历史查看 | git log、git log --oneline、git log --graph | 
| 分支操作 | git branch、git checkout -b <branch>、git merge <branch> | 
| 远程协作 | git remote add origin <url>、git pull、git push | 
| 撤销与回滚 | git reset --hard <commit>、git checkout -- <file>、git revert <commit> | 
| 暂存与标签 | git stash、git stash pop、git tag <tagname>、git push origin <tag> | 
| 进阶操作 | git rebase <branch>、git cherry-pick <commit> | 
