程序员必备 —— Git
1. Git 介绍
Git 是一个开源的分布式版本控制系统。
2. Git 实战
2.1 初识(初始化及简单使用)
- 进入待管理的目录
- 执行初始化指令:
git init
- 管理指定文件:
git add 文件名 git add .
- 个人信息配置(仅需配置一次)
git config --global user.email "your email address" git config --global user.name "your name"
- 生产版本:
git commit -m '描述信息'
git 整体工作流程如下图:
2.2 回滚
- 回滚至之前的版本:
git log git reset --hard 版本号
- 回滚至之后的版本:
git reflog git reset --hard 版本号
2.3 修复线上紧急 bug 思路
- 使用 git stash 将当前分支未提交的代码保存起来
git stash save "摘要标签"
- 开启缺陷修复分支
git checkout -b "bugfix"
- 修复完合并到 master 分支,需要先切换到待合并到的分支,然后执行
git merge 分支名
,比如想把 bugfix 分支合并到 master 分支git checkout master git merge bugfix
- 合并时可能产生冲突,需要手动解决冲突
- 手动删除 bugfix 分支
git branch -d 待删除的分支名称
- 利用
git stash pop
命令将代码恢复,继续进行修复 bug 之前的开发工作。
2.4 分布式开发
- 给远程仓库起别名
git remote add 远程仓库名称 远程仓库地址
- 向远程推送代码
git push -u 远程仓库名称 分支
- 克隆远程仓库代码
git clone 远程仓库地址
- 在家/公司继续写代码
# 1. 切换到 dev 分支
git checkout dev
# 2. 拉取代码
git pull origin dev
# 3. 继续开发
# 4. 提交代码
git add .
git commit -m 'xxx'
git push origin dev
- 开发完成要上线
# 1. 将 dev 分支合并到 master, 进行上线
git checkout master
git merge dev
git push origin master
# 2. 把 dev 分支也推送到远程
git checkout dev
git merge master
git push origin dev
2.5 rebase 的应用
- 把多次提交(未 push 到远程仓库的 commit)合并为一个提交
git rebase -i HEAD~3 (把从 HEAD 开始的最近 3 条提交记录合并)
2.6 命令总结
- 添加远程连接(别名):
git remote add origin 地址
- 推送代码:
git push origin dev
- 下载代码:
git clone 地址
- 拉取代码:
git pull origin dev
等价于git fetch origin
+git merge origin/dev
- 保持代码提交整洁(变基):
git rebase 分支
- 记录图形展示:
git log --graph --pretty=format:"%h %s"