git 入门

git 入门

以下是 Git 从基础到精通的详细实例教程,涵盖版本控制全流程和高级技巧,配合具体操作示例:

一、Git 基础操作

  1. 初始化仓库
# 创建新目录并初始化
mkdir my-project && cd my-project
git init
  1. 首次提交
# 创建文件并提交
echo "# My Project" > README.md
git add README.md
git commit -m "Initial commit"
  1. 查看状态与历史
git status                  # 查看工作区状态
git log --oneline --graph   # 简洁版提交历史

二、分支管理实战

  1. 创建与切换分支
git branch feature/login    # 创建分支
git checkout feature/login  # 切换分支
# 或简写:
git switch -c feature/login
  1. 合并分支(含冲突解决)
# 模拟冲突
echo "console.log('Login');" > login.js
git add . && git commit -m "Add login function"

git switch main
echo "console.log('Home');" > login.js
git add . && git commit -m "Update home page"

# 合并并解决冲突
git merge feature/login
# 冲突文件会显示:
<<<<<<< HEAD
console.log('Home');
=======
console.log('Login');
>>>>>>> feature/login

# 手动修改后提交
git add login.js
git commit -m "Resolve merge conflict"
  1. 变基(Rebase)操作
git switch feature/login
git rebase main
# 若出现冲突,解决后:
git add .
git rebase --continue

三、远程仓库协作

  1. 关联远程仓库
git remote add origin https://github.com/user/repo.git
git push -u origin main
  1. 多人协作流程
# 拉取最新代码
git pull --rebase origin main

# 推送分支
git push origin feature/login

# 创建PR后更新本地
git fetch origin
git rebase origin/main

四、高级技巧

  1. 交互式暂存(Interactive Add)
git add -p  # 分块选择修改
  1. 修改历史提交
# 修改最近一次提交
git commit --amend -m "New message"

# 交互式变基(修改多个提交)
git rebase -i HEAD~3
# 弹出编辑器,将pick改为edit/r/reword等
  1. 暂存与恢复工作现场
git stash                   # 暂存当前修改
git stash list              # 查看暂存列表
git stash pop               # 恢复最近暂存
git stash apply stash@{1}   # 恢复指定暂存

五、故障处理

  1. 撤销更改
# 撤销工作区修改
git checkout -- file.txt

# 撤销暂存区修改
git reset HEAD file.txt

# 回退到指定提交
git reset --hard commit_hash
  1. 找回删除的分支
# 查看历史引用记录
git reflog
# 恢复分支
git branch recovered-branch commit_hash

六、Git 配置优化

  1. 全局配置
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'"
git config --global core.editor "code --wait"  # 设置VSCode为默认编辑器
  1. 忽略文件配置(.gitignore)
# 示例内容
node_modules/
*.log
.DS_Store

七、完整工作流示例

场景:开发新功能并提交PR

# 1. 拉取最新代码
git pull origin main

# 2. 创建功能分支
git switch -c feature/search

# 3. 开发并提交
echo "function search() {}" > search.js
git add .
git commit -m "Implement search function"

# 4. 推送分支
git push -u origin feature/search

# 5. 在GitHub创建PR后,继续开发...
git add .
git commit -m "Add search filters"
git push

# 6. 代码审查后合并
git switch main
git pull
git branch -d feature/search

八、Git 内部原理

  1. Git 对象模型
# 查看对象内容
git cat-file -p HEAD        # 查看提交对象
git ls-tree HEAD            # 查看树对象
git cat-file -p blob_hash   # 查看文件内容
  1. 引用日志(Reflog)
git reflog show HEAD

九、图形化工具推荐

命令行增强:

tig:交互式Git浏览器
lazygit:终端UI工具
GUI工具:
GitHub Desktop
GitKraken
Sourcetree

十、学习路径建议

新手阶段:
掌握add/commit/push/pull基础操作
理解工作区/暂存区/仓库的概念

中级阶段:
熟练使用分支与合并
学会解决冲突

高级阶段:
掌握rebase/stash/reflog等高级操作
理解Git内部原理

通过以上实例练习,你可以逐步从Git新手成长为版本控制专家。关键是多实践,遇到问题善用git --help和搜索引擎排查。

posted @ 2025-07-30 11:26  michaelchengjl  阅读(90)  评论(0)    收藏  举报