基本命令
状态查看
git status
查看工作区、暂存区状态
添加
git add [file name]
将工作区的“新建/修改”添加到暂存区
提交
git commit -m "commit message" [file name]
将暂存区的内容提交到本地库
查看历史记录
git log
git reflog
![](https://img2018.cnblogs.com/i-beta/1813101/202002/1813101-20200218185424502-1003917768.png)
HEAD@{移动到当前版本需要多少步}
前进后退
- 基于索引值操作[推荐]
git reset --hard [局部索引值]
git reset --hard a6ace91 - 使用^符号:只能后退
git reset --hard HEAD^
注:一个^表示后退一步,n 个表示后退 n 步 - 使用~符号:只能后退
git reset --hard HEAD~n
注:表示后退 n 步
比较文件差异
- git diff [文件名]
将工作区中的文件和暂存区进行比较 - git diff [本地库中历史版本] [文件名]
将工作区中的文件和本地库历史记录比较 - 不带文件名比较多个文件
分支操作
创建分支
git branch [分支名]
查看分支
git branch -v
切换分支
git checkout [分支名]
git checkout -b [分支名] 创建并切换分支
合并分支
- 第一步:切换到接受修改的分支(被合并,增加新内容)上
git checkout [被合并分支名]
- 第二步:执行 merge 命令
git merge [有新内容分支名]
[从本地 master 更新当前分支]
git rebase master
备注:想要干净的历史,少了merge commit的线性历史树,选择git rebase 而如果你想保留历史记录,并且想要避免重写commit history的风险,使用git merge
- git checkout dev
- git rebase master
- fix conflicts
- git add
- git rebase --continue
- git checkout master
- git pull origin dev
- git push origin master
创建远程库地址别名
git remote -v 查看当前所有远程地址别名
git remote add [别名] [远程地址]
推送
git push [别名] [分支名]
克隆
git origin [远程地址]
分支种类
主干分支 master
主要负责管理正在运行的生产环境代码。永远保持与正在运行的生产环境完全一致。
开发分支 develop
主要负责管理正在开发过程中的代码。一般情况下应该是最新的代码。
bug 修理分支 hotfix
主要负责管理生产环境下出现的紧急修复的代码。 从主干分支分出,修理完毕并测试上线后,并回主干分支。并回后,视情况可以删除该分支。
准生产分支(预发布分支) release
较大的版本上线前,会从开发分支中分出准生产分支,进行最后阶段的集成测试。该版本上线后,会合并到主干分支。生产环境运行一段阶段较稳定后可以视情况删除。
功能分支 feature
为了不影响较短周期的开发工作,一般把中长期开发模块,会从开发分支中独立出来。 开发完成后会合并到开发分支。
参考: