版本控制——熟悉Git

熟悉Git

熟悉Git在Linux中的使用,从用户创建到核心操作,结合示例逐步解释:

一、系统用户与Git基础配置

  1. 创建专用Git用户(可选)
#用户创建并设置密码
useradd -m -s /usr/bin/git-shell git
passwd git
# 验证用户权限(需密码)
su - git
# 输入密码后,用户将受限只能执行Git操作

说明:使用/usr/bin/git-shell限制用户仅能通过Git协议操作代码库,增强安全性

  1. 安装Git并全局配置
# 安装Git(Debian/Ubuntu)
sudo apt update && sudo apt install git

# 配置全局信息
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git config --global core.editor vim  # 设置默认编辑器

验证配置

git config --list
# 输出示例:
# user.name=Your Name
# user.email=you@example.com
#core.editor=vim

二、本地仓库操作

  1. 初始化仓库
mkdir my_project && cd my_project
git init
# 输出:
# Initialized empty Git repository in /home/user/my-project/.git/
  1. 文件管理流程
# 创建测试文件
echo "Hello Git" > README.md

# 查看状态
git status
#输出
#On branch master
#No commits yet
#Untracked files:
  #(use "git add <file>..." to include in what will be committed)
    #README.md
#nothing added to commit but untracked files present (use "git add" to track)

# 添加文件到暂存区
git add README.md #上条指令报错,将README.md加入到git仓库即可解决

# 提交修改
git commit -m "Initial commit: Create README"
# 输出:
# [master (root-commit) abc123] Initial commit: Create README
#  1 file changed, 1 insertion(+)
#  create mode 100644 README.md
  1. 分支管理
# 查看分支
git branch
# 输出:
# * master

# 创建新分支
git branch feature/login
# 切换分支
git checkout feature/login
# 或者合并操作
git checkout -b feature/pay  # 创建并切换

# 合并分支
git merge feature/login
# 解决冲突后提交
git commit -m "Merge login feature"

三、远程仓库操作

  1. 创建远程仓库(GitHub示例)
# 创建空仓库(Web界面操作)
# 假设仓库地址为:https://github.com/username/my-repo.git

# 关联远程仓库
git remote add origin https://github.com/username/my-repo.git
git remote -v  # 查看关联
# 输出:
# origin  https://github.com/username/my-repo.git (fetch)
# origin  https://github.com/username/my-repo.git (push)
  1. 代码同步操作
# 首次推送
git push -u origin main
# 后续推送
git push

# 拉取更新
git pull origin main
# 自动合并失败时需手动解决冲突
git mergetool  # 启动可视化合并工具
  1. git stash常用操作
#将工作区的代码暂存,临时保存未提交的修改
git stash
#将工作区的代码暂存
git pull
#将再存的代码拉回 同步到最新状态
git stash pop
##解决冲突
重点:在解决完成冲突后 一定要保证代码可以正常编译在上传
只要执行 pull 操作就需要 保证代码可以编译通过 

## 将修改添加 提交 上传
git add .
git commint -m ""
git pull

======
## 在自己的分支,临时保存未提交的修改
git stash
## 切换到主分支
git checkout main
## 将主分支获取到最新状态
git pull  # 正常情况下不会有冲突 因为主分支一直都是干净的
## 切换到工作分支 并将主分支合并到 工作分支
git checkout wyy
git rebase main
# 理论上不会出现冲突因为在 第一步已经将代码回去到 上一次提交的主分支状态
## 将暂存的修改 拉回
git stash pop
=====

四、git stash实战示例

#保存当前配置(包含未暂存文件)
git stash --include-untracked

#切换到其他分支处理任务
git checkout main

#完成任务后恢复修改
git checkout feature/login 
git stash pop

#查看所有保存记录
git stash list

#输出示例:
#stash@{0}: On feature/login:修复登录逻辑
#stash@{1}: WIP on main:优化性能

五、协作开发规范

  1. 分支命名规范
#推荐格式
git checkout -b feature/user-auth #功能分支
git checkout -b fix/payment-error #修复分支
git checkout -b release/v1.2.0    #发布分支
git checkout -b hotfix/db-crash   #热修复分支
  1. 提交信息规范(Angular格式)
git commit -m "feat(login): 添加短信验证功能"
git commit -m "fix(api): 修复POST请求编码问题 #123"
git commit -m "docs(readme): 更新安装指南"

说明feat新增功能,fix修复Bug,docs文档变更,chore构建工具更新

  1. 冲突解决示例
# 当发生冲突时,git status会提示冲突文件
git status
# 修改冲突文件(以<<<<<<<分隔的代码块)
# 手动选择保留的代码部分
git add conflict-file.txt
git commit -m "resolve merge conflict"

posted @ 2025-06-04 18:04  Jaylan  阅读(17)  评论(0)    收藏  举报