在安装好 gitee 之后。我们会有新的一些业务需求。
场景:L在公司中再使用 gitee 上传自己的代码,一天上传一次~那其他人的代码怎么办、岂不是乱套了。那全部写完之后再上传,可是项目进度又要每天核实。
这个时候就体会到了分支的作用:
简易的命令行入门教程:
Git 全局设置:
git config --global user.name "****"
git config --global user.email "*******"
创建 git 仓库:
mkdir djang
cd djang
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin git@地址
已有仓库?
cd existing_git_repo
git remote add origin git@gitee.com:H_sen/djang.git
git push -u origin master
# 默认在当前目录下创建和版本库名相同的文件夹并下载版本到该文件夹下
git clone <远程仓库的网址>
# 指定本地仓库的目录
git clone <远程仓库的网址> <本地目录>
# -b 指定要克隆的分支,默认是master分支
git clone <远程仓库的网址> -b <分支名称> <本地目录>
# 新建分支 并转移到此位置
git checkout -b NewBranch
# 查看所有分支
git branch
# 切换分支 切换到 master
git checkout master
# 删除本地分支 NewBranch
git branch -D NewBranch
场景:假设我们现在创建分支 NewBranch 已经成功,如果需要对此传入代码。
git add -A (或文件名)
git commit -m "new branch"
git push origin NewBrLanch # 将代码上传到分支
场景:假设项目全部完毕,有多个分支~我们需要将他们合并
# 回到主分支 master
git checkout master
# 将主分支数据拉到本地
git pull
# 强行合并 (可能会出错, master很有可能也更新)
git merge NewBranch
# 假设说上面的 和合并出现问题 那就手动合并
vim Readme # 手动合并标识文件
git add -A
git push origin master # 合并之后 就可以提交到 master 了
# 查看从什么地方出现的分支
git log -graph
现在都可以理解 为什么要用分支了。
而且再公司中 分支也是有规定的,如 master 不可以轻易的上传啦,要用 dev 开发的分支进行项目开发,而每个组还要有 pyTeam 分支,知道组中的我 H_sen 分支。只有等测试排除所有的问题后才会发布到 master 分支。
那么会不会有 BUG 分支呢? 有!!!
场景:假设说所有的拦截手段还是没有挡住 BUG 上传到 master (没错,你写的),而你这个时候正在开发别的模块。怎么办呢?
如何使用:
# 突然出现的 bug
vim Readme
# 将 dev 中未保存的代码存放到临时区
git stash # 这样做完全的避免了 将 代码带入到 Bug 分支
# 切换到 bug 分支
git checkout -b bug-100
# 切换后 修复 bug
vim Readme
git add -A
git commit -m "修复 bug" # 提交到工作区
# 切换到 master
git checkout master
# 强行合并
git merge bug-100
# 推送 到主分支
git origin master
bug 排完了。之前的文件怎么恢复状态?
# 切换回开发的分支
git checkout dev
# 查看状态
git status
more Readme # 发现之前工作区 未提交的数据都消失了
git stash list # 查看之前使用 git stash 保存的数据
git stash apply # 恢复之前的文件
# 查看状态
git status # 此时就可以看到排bug 之前的完美状态了
git stash drop # 删除最久的那个 使用 git stash 临时保持状态
git stash apply stash{
{
0}} # 指定恢复到那个临时状态
git stash pop # 恢复并删除上一个临时状态
'''
注意!!! git stash aplpy恢复后 stash的内容并不删除,需要 git stash drop 才能删除
git stash pop 就简单许多 恢复的时候直接删除
'''