python之路_最简单的Git介绍
一、Git与Github介绍
1.Git介绍
git是干什么用的?实现版本控制。各行各业都需要版本控制,主要实现版本控制的工具方式分别为svn和Git。
2、Github介绍
GitHub是一个基于Git的远程文件托管平台(同GitCafe、BitBucket和GitLab等)
3、二者关系
Git本身完全可以做到版本控制,但其所有内容以及版本记录只能保存在本机,如果想要将文件内容以及版本记录同时保存在远程,则需要结合GitHub来使用。使用场景:a、无GitHub:在本地 .git 文件夹内维护历时文件;b、有GitHub:在本地 .git 文件夹内维护历时文件,同时也将历时文件托管在远程仓库
二、Git基本使用
1、第一次使用
''' 1、在电脑上安装git软件(自行下载软件并安装) 2、启动git:创建的项目的文件夹里面右键--->点击Git Bash Here 3、git初始化:git init 4、配置Git:分别执行命令: git config --global user.email "you@example.com" git config --global user.name "your name" '''
2、版本控制
''' 1、文件添加到git:git add . (.指目录下所有的文件,也可以指定文件) 2、文件提交git备份:git commit -m "描述信息" 3、查看版本状态:git status 4、查看版本提交记录:git log 5、回滚指定版本: git reset --hard 版本号 (版本号可以通过git log查看,为随机字符串) 6、查看往后提交记录:git reflog '''
以上请注意:一定记得先add,后commit,add之后是没有放到版本里的,只有commit的时候才有版本。
3、修复bug
有这样一个场景,产品上线后,开发员A将在继续开发一个新的功能,当新功能开发到一半时候,突然线上的版本出现bug,A要对其进行立即的修复,流程如下:
方式一:stash
stash用于将工作区发生变化的所有文件获取临时存储在“某个地方”,将工作区还原当前版本未操作前的状态;stash还可以将临时存储在“某个地方”的文件再次拿回到工作区。
#步骤: ''' 1、git stash:将开发到一半的直播功能,临时存储到“某个地方” 2、git status:查看工作区回到当前版本未做任何操作前(此时即为上线的版本) 3、修复bug 4、git add . 5、git commit -m '紧急修复bug' 6、git stash pop:将开发到一半的直播功能从“某个地方”再次拿会工作区继续开发 '''
注意:执行 git stash pop 命令时,可能会遇到冲突,因为在紧急修复bug的代码和通过stash存储在“某个地方”的代码会有重合部分,所以执行 git stash pop 时候就会出现冲突,有冲突解决冲突即可。
方式二:分支
branch称为分支,默认仅有一个名为master的分支。一般开发新功能流程为:开发新功能时会在分支dev上进行,开发完毕后再合并到master分支。创建新分支,即:拷贝一份当前所在分支代码到新分支。
#分支相关命令: ''' git branch 分支名称 创建分支 git checkout 分支名称 切换分支 git branch -m 分支名称 创建并切换到指定分支 git branch 查看所有分支 git branch -d 分支名称 删除分支 git merge 分支名称 将指定分支合并到当前分支 '''
修复bug流程:
''' git branch dev (创建开发分支dev,所有的开发在dev分支上进行) git checkout dev 写代码 git add . git commit -m 'xxx' git checkout master git branch bug (在master分支创建bug分支,在bug分支上修复bug,master分支上存储的是正式上线的版本。) git chekcout bug 修复bug git add . git commit -m '紧急修复bug' git checkout master git merge bug (在bug分支上修复完bug后,提交。并再此与master上的版本合并,并不影响dev分支上的开发。) git branch -d bug git checkout dev 继续开发 '''
三、Github基本使用
1、代码托管
正常的程序员一般都会存在多个办公地点,家里、公司或者咖啡厅,但是我们又不能随身将代码装在优盘或者随身携带电脑,这该怎么办呢?就会用到github进行代码托管。实例如下:
初次上传代码:
''' 1、注册github账号,登录后创建代码仓库 2、创建完后复制代码仓库的连接 3、在git上创建别名:git remote add origin 代码仓库连接 4、首次上传代码到github的master分支:git push origin master 5、同样也可以将代码上传到dev分支:git push orgin dev '''
具体应用实例:
家里: git add . git commit -m 'xx' git remote add origin https://github.com/WuPeiqi/greenlu.git git push origin master 公司: # 新公司第一次获取代码 方式一 git clone https://github.com/WuPeiqi/greenlu.git 方式二 git init git remote add origin https://github.com/WuPeiqi/greenlu.git git pull origin master 直接拿回来 方式三 git init git remote add origin https://github.com/WuPeiqi/greenlu.git 这的两句相当于git pull origin master 这一句 git fetch origin master 拿到分支上了 git merge origin/master 合并在一起
2、协同开发
假如三个人共同开发同一份代码,每个人都各自安排了任务,当每个人都完成了一半的时候,提交不提交呢?要提交,提交到dev吗,都上传了一半,这样回家拿出来的代码根本跑不起来。所以,为每一个人创建一个分支,各自都在各自的分支上写代码,互不影响。很短时间内大家暂时先合并一次,不然冲突太多了。但是这个分支不是dev,而是review分支,当老大看完没问题之后再合并到dev分支。
#先创建了一个dev的分支 git branch dev git checkout dev git push origin dev #又创建了一个review的分支 git branch review gir checkout review git push origin review #创建自己的分支 git branch haiyan git checkout haiyan git pull origin haiyan
应用实例:
张三创建了个文件 git branch xxx git checkout xxx touch a.py ls git add . add commit -m '代码初始上线' git push origin xxx ls vim a.py #写了一些内容 git add . add commit -m '小功能开发完毕' git push origin xxx #现在两人都写完了,开始合并和review进行合并了 git checkout review git pull origin review #吧远程的review拉下来 #把自己的合并发到review git merge xxx ls git status git push origin review #再次写的时候 git pull origin review 李四创建了个文件 git branch yyy git checkout yyy touch s.py ls git add . add commit -m '到了新公司好激动啊' git push origin sk ls vim s.py #写了一些内容 git add . add commit -m '小开发完毕' git push origin yyy #现在两人都写完了,开始合并和review进行合并了 git checkout review #git pull origin review #如果先没有吧远程的review拉下来 #吧自己的合并发到review git merge yyy ls git status git push origin review #这时候的review是最新的,那么张三先提交了,完了她还得拉先来再合并一次 注意:老大看了review分支,如果OK,可以放到dev分支进行测试,如果测试没有问题了才放到master分支。 master分支:线上的版本,永远保证线上的版本,无论是回滚到哪都是能用的
以上内容参考博客:http://www.cnblogs.com/wupeiqi/articles/7295372.html