一、熟悉git工具
- Git的初始配置
①设置用户签名
配置用户名: git config --global user.name "你的用户名"
配置邮箱: git config --global user.email "注册的邮箱"
配置好之后,可以用 git config --global --list命令查看配置是否OK
git config --global user.name "你的用户名"
git config --global user.email "注册的邮箱"
git config --global --list //查看全局配置:查看配置是否完成
注意:这里设置的用户签名和将来登录GitHub的账号没有任何关系
②创建本地库
在自己选择好的目录,右键鼠标点击Git Bash Here,然后输入git init,这个目录变为git可以管理的仓库。
git init 命令用于在目录中创建新的 Git 仓库。
③添加文件到本地库
在创建好的本地库目录下创建一个文件
使用下列的命令,将创建的文件添加到暂存区,然后提交到仓库:
git add 文件名 //将文件提交到暂存区
git commit -m ‘这里添加注释’ //将暂存区文件提交到仓库
其他命令:
1.检查是否有未提交的文件 git status :检查当前文件状态
2.查看暂存区中文件信息 git ls-files
3.删除暂存区文件git rm --cached 文件名.后缀
④将git连上gitee
a、生成ssh
ssh-keygen -t rsa
输入上述命令,回车三下,会在C:\Users\你的用户名.ssh 中生成密钥。

其中:id_rsa是私钥 id_rsa.pub是公钥
注意: 如果本地还未生成SSK key,可以通过该命令生成:
ssh-keygen -t rsa -C "你的邮箱"
b、进入Gitee配置SSH

2、创建远程仓库

3、获取远程仓库(git bush)
fetch 获取到本地仓库;pull 拉取到本地仓库并合并到工作空间
注意不管用fetch还是pull,做之前都要在本地仓库做一次git commit,确保,本地仓库和工作目录及缓存一致。

①git fetch
从远程仓库获得最新版本到本地,不会自动merge。
git fetch origin master:dev //从远程获取最新的版本到本地的dev分支上
git diff dev //进行比较:显示dev分支与上次提交的差异
git merge dev //合并:是将dev的分支合并到当前分支
②git pull
从远程仓库获得最新版本并merge到本地。
git pull origin master //等同于 git fetch + git merge
在实际使用中,git fetch更安全一些,因为在merge前,我们可以查看更新情况,然后再决定是否合并。
4、推送到远程仓库
git push -u origin <分支名> //通过此分支可以将本地仓库推送到指定分支
-u:将远程仓库的指定分支设置为本地分支的upstream(上游),将两者关联。
我们执行此命令后执行的push/pull命令都可不需要指定仓库和分支,直接使用git push/git pull。git会自动找到本地分钟所关联的远程分支并推送代码。
5、分支切换
①git checkout branchName //该命令会将当前工作分支切换到branchName
②git checkout -b newBranch //在新分支创建的同时切换到新分支
等同于:
git branch newBranch
git checkout newBranch
6、其他常用命令
①git branch -a
查看本地仓库与远程仓库的分支信息。
②git branch
查看本地分支
③git checkout -b dev origin/dev
切换远程分支,需要带上远程文件路径,不然就是在本地创建dev分支(和远程dev分支没有关联)
④git branch -d dev
删除本地分支。
⑤git clone 远程仓库地址
此命令表示根据远程仓库地址将远程仓库克隆到本地。默认是克隆master主分支到本地。
也可以克隆其他分支到本地:git clone -b 分支名 仓库地址。
二、分支管理
- Git Flow模型
Git Flow模型中定义了主分支和辅助分支两类分支,其中主分支用于组织与软件开发、部署相关的活动;辅助分支组织用于解决特定的问题而进行的各种开发活动。其更适用于有多版本并存需求且具有一定规模的项目。
分支 |
定位 |
含义 |
备注 |
起始 |
终止 |
master |
主分支 |
正式发布分支 |
该分支代码通过其他分支合并,不允许直接提交代码到该分支 |
git init |
- |
hotfix |
Bug修复分支 |
线上bug紧急修复分支 |
只允许 checkout 于master; 要分别 merge 到 develop 和 master |
Branch from master |
Merge to master&develop |
release branches |
预发布分支 |