网站看不到预览图,网站的风格对比信息表,高端网站建设需要多少钱,哪个做公司网站1.Git简介#xff1a;
1.Git是目前世界上最先进的分布式版本控制系统
网址#xff1a;http://github.com
2.总结git的两大特点#xff1a;
版本控制#xff1a;可以解决多人同时开发的代码问题#xff0c;也可以解决找回历史代码的问题 分布式#xff1a;Git是分布式…1.Git简介
1.Git是目前世界上最先进的分布式版本控制系统
网址http://github.com
2.总结git的两大特点
版本控制可以解决多人同时开发的代码问题也可以解决找回历史代码的问题 分布式Git是分布式版本控制系统同一个Git仓库可以分布到不同的机器上。 2.经理创建
2.1安装配置 安装 sudo apt-getinstall git
安装成功后运行如下命令 git 配置
在ubuntu的命令vi .gitconfig行中修改某台机器的git配置 修改为注册github时的邮箱填写用户名要求组员的用户名不能重复 git四部分的交互方式如下图 2.2创建仓库
注册github账户登录后点击start a project 在新页面中输入项目的名称勾选readme.md点击create repository 添加成功后转到文件列表页面点击create new file创建新文件 填写文件名称为.gitignore代码如下表示项目中的pyc文件不需要被管理因为这些文件代码是根据py生成的
*.pyc .idea/ migrations/
点击preview查看预览点击create new file完成创建 2.3添加ssh账户
如果某台机器需要与github上的仓库交互那么就要把这台机器的ssh公钥添加到这个github账户上 点击账户头像后的下拉三角选择settings 点击SSH and GPG keys添加ssh公钥 生成git密钥
删除~/.ssh目录这里存储了旧的密钥 rm -r .ssh 运行如下命令生成密钥
ssh-keygen -trsa -C Github账号可以是用户名也可以是邮箱地址 查看公钥内容复制此内容 cat id_rsa.pub 回到浏览器中填写标题粘贴公钥 2.4克隆项目
在浏览器中点击进入github首页再进入项目仓库的页面 复制git地址 在命令行中复制仓库中的内容
git clone git地址 错误处理
提示错误信息如下 sign_and_send_pubkey: signingfailed: agent refused operation
错误原因在ssh账户中没有加入新生成的密钥 解决将密码加入ssh账户 逐条运行如下命令 eval $(ssh-agent-s) ssh-add 2.5创建项目分支
每个员工开发期的代码互不干扰并行开发则每人使用一条分支 项目开发中公用分支包括master、dev 分支master用于发布默认分支当需要发布时将dev分支合并 分支dev开发阶段性的代码合并每个阶段的工作完成后需要进行一次控制项目的进度 成员分支用于每个项目成员的代码开发实现不交叉 创建分支:git branch 分支名称 切换分支:git checkout 分支名称 将分支推送到服务器:git push origin 分支名称 将本地分支跟踪服务器分支
git branch--set-upstream-toorigin/分支名称 分支名称 创建并切换分支:git checkout -b 分支名称 查看所有分支当前分支前标记为星*:git branch 删除分支:git branch -d 分支名称 没有例子没错就是没有例子如果你删除了我也找不回来哟 2.6搭建项目框架
当前项目分支一共有3个分别为master、dev、itcast当前在itcast分支上工作 在克隆的目录下创建项目使用django框架 将文件代码添加到暂存区:git add dailyfresh/ 将暂存区提交到仓储区:git commit -m 搭建框架 2.7上传分支
当从远程仓库克隆时实际上Git自动把本地的master分支和远程的master分支对应起来 远程仓库的默认名称是origin 推送分支就是把该分支上的所有本地提交推送到远程库推送时要指定本地分支这样Git就会把该分支推送到远程库对应的远程分支上
git pushorigin 分支名称 当前文件在python分支上所以推送python分支 gitpush origin python 将python分支合并到dev分支 gitcheckout dev git merge python 推送dev分支:git push origin dev 将dev分支合并到master分支 git checkoutmaster git merge dev 推送master分支:git push origin master 3.员工—开发 3.1添加ssh账户 生成git密钥
删除~/.ssh目录这里存储了旧的密钥 rm -r .ssh 运行如下命令生成密钥
ssh-keygen -trsa -C Github账号可以是用户名也可以是邮箱地址 查看公钥内容复制此内容 cat id_rsa.pub 回到浏览器中填写标题粘贴公钥 3.2本地克隆
根据项目经理提供的地址如“gitgithub.com:bossliu2016/django1.git”从github上将项目克隆到本地默认对应的是master分支
git clone 项目地址 3.3同步分支
以自己的姓名创建分支如果此分支已经存在可以添加数字后缀具体要与项目经理商量 git checkout -bzhjia
将本地分支推送到服务器 git push originzhjia
将本地分支跟踪服务器分支
git branch--set-upstream-toorigin/分支名称 分支名称 将github上的dev分支同步到本地因为开发过程中所有组员都向这个分支上提交阶段性代码并从这个分支获取最新代码 git checkout -bdev origin/dev 3.4开发管理
上面的操作只有我们在加入项目的第一天需要进行只操作一次就够了 接下来的操作是我们每天开发中都要进行的操作这是必须做到熟练操作的命令 当前用户以zhjia分支进行开发 git checkout zhjia 本地仓库分为三部分工作区暂存区仓库区其中暂存区、仓库区是版本库部分 3.5工作区与暂存区 添加
git add 文件1 文件2 ... git add 目录 撤销 git checkout-- 文件名 3.6暂存区与仓库区
仓库区表示个人开发的一个小阶段的完成仓库区中记录的各版本是可以查看并回退的但是在暂存区的版本一旦提交就再也没有了 查看暂存区未提交的记录git status 将暂存区的记录提交到仓库区
git commit -m本次提交的说明信息 3.7本地与服务器 获取
建议在每天开始编写代码前先与服务器同步一次或者在公用分支如dev上开发时建议先同步后开发 1.切换到dev分支git checkout dev 2.获取代码如果dev分支上有更新的记录则会同步到本地git pull 3.切换回自己的分支继续开发git checkout zhujiao 推送
建议在每天下班前将当天开发推送到服务器这样可以在服务器中存储一个备份即使本机出问题在服务器上还能存在代码备份
git push origin zhjia 合并分支
一个功能模块开发完了合并到dev分支 1.切换到dev分支git checkout dev 2.获取代码如果dev分支上有更新的记录则会同步到本地git pull 3.合并git merge zhjia 4.添加、提交并推送git push origin dev 5.切换回工作分支git checkout zhujiao 6.在最新代码上继续开发所以将dev分支合并到zhujiao分支 git merge dev 解决冲突
建议在更改公用文件如dailyfresh/urls.py时需要操作dev分支因为大家都可以操作dev分支所以在合并时可能出现冲突 冲突的示例如下修改dailyfresh/urls.py文件 项目经理的操作
1.项目经理负责前台的开发需要修改dailyfresh/urls.py文件 git checkout dev 2.在dailyfresh/urls.py文件中添加一条url 3.添加并提交 git adddailyfresh/urls.py git commit -m 配置前台url 4.同步到服务器 git push origindev 员工的操作
1.员工负责用户模块的开发需要修改dailyfresh/urls.py文件 git checkout dev
2.在dailyfresh/urls.py文件中添加一条url 3.添加并提交 git adddailyfresh/urls.py git commit -m 配置用户模块url
4.向服务器推送git push origin dev
5.推送时发现出错误了根据提示需要先获取服务器的变更 git pull
发现有冲突而且自动合并冲突失败需要手动合并冲突指向dailyfresh/urls.py文件 6.冲突解决完成再次添加、提交、推送 git add dailyfresh/urls.py git commit -m 配置用户模块url-解决冲突后 git push origin dev 3.8历史
查看仓库区的历史操作 git reflog 对比工作区和仓库区中某版本某文件的不同
git diff HEAD-- 文件名 将上面的代码添加提交 git adddf_user/models.py git commit -m 修改模型类的str方法为name属性 回退
回退历史版本到暂存区 将df_user/models.py文件的更改完成添加、提交 git adddf_user/models.py git commit -m 修改模型类
查看当前的暂存区状态git status
重置版本git reset 版本号
再次查看当前的暂存区状态git status 可以再将暂存区的内容恢复到工作区 git checkout --df_user/models.py 3.9删除
在ide中将文件删除 从工作区到暂存区提交git rm 文件名 从暂存区到仓库区提交git commit -m 说明信息
1.创建df_user/a.py的变更添加到暂存区再提交到仓库区 git adddf_user/a.py git commit -m 创建文件a
2.在ide中将df_user/a.py文件删除然后在暂存区删除 git rmdf_user/a.py
3.提交暂存区的记录到仓库区
git commit -m删除文件a 3.10Debug分支
在项目的正常开发过程中之前发布过的版本可能很会出bug这时就需要停下来现在的开发任务先去修改bug完成后再回来继续开发任务 git中stash提供了保存现场的功能可以把当前工作区、暂存区中的内容不需要提交而保存下来转而去做bug修复完成后再恢复现场继续开发工作
将语言和时区改为 LANGUAGE_CODE zh-Hans TIME_ZONE Shanghai/Asia 1.查看当前状态git status 2.保存现场git stash 再查看当前状态发现是干净的git status 3.切换到master分支git checkout master 4.新建临时分支用于修复bug用完后会删除此分支 git checkout -bbug001
5.修改dailyfresh/settings.py文件的语言和时区
添加将工作区中的更改添加到暂存区 git adddailyfresh/settings.py
提交将暂存区的内容提交到仓库区
git commit -m修复时区语言
6.切换回master分支git checkout master 7.将bug001分支合并到master分支 因为临时分支用完后会被删除无法通过分支查询历史记录所以使用临时分支时需要使用no-ff的方式同时写上-m备注信息
git merge--no-ff -m 修复bug-语言时区 bug001
推送到服务器git push 8.删除临时分支bug001git branch -d bug001 9.切换回工作分支zhjiagit checkout zhjia 查看现场列表git stash list 恢复现场git stash pop 恢复现场后查看工作状态git status 4.0经理-发布
项目开发完一个版本后需要进行项目的合并与发布 项目合并与发布需要项目经理和组员一起来完成每个人将开发的分支逐个合并到dev分支如果有冲突则解决冲突在dev上的代码经过测试没有问题后则由经理合并到master分支完成发布 实现发布主要遵守如下步骤
每个人逐个合并分支到dev 经理合并dev到master并发布 每个人获取最新的dev分支、master分支 4.1逐个合并
1.切换到dev分支git checkout dev 2.获取最新记录代码git pull 3.合并将自己编写的代码加入进来如果有冲突则与上一个组员商量解决冲突 如果没有冲突则可以跳过4、5步
git merge 分支
4.添加 注意在项目的根级目录下即README.md所在的目录下 git add ./
5.提交git commit -m zhjia发布v1.0 6.推送git push origin dev 4.2经理合并
所有成员都完成合并后接下来是项目经理要执行的操作 1.切换到dev分支git checkout dev 2.获取最新git pull 3.切换到master分支git checkout master 4.合并dev分支到master分支 如果有冲突则找相应的组同解决冲突 如果没有冲突则可以跳过5、6步 git merge dev
5.添加 注意在项目的根级目录下即README.md所在的目录下 git add ./
6.提交git commit -m 发布v1.0 7.打标签 标签就是为了给一堆数字的版本号起一个容易记住的名字一般用于master分支git tag v1.0 8.推送git push 4.3逐个获取
现在最新的代码已经有了接下来在这个版本代码基础上继续开发每个人都要获取最新的代码 1.切换到master分支git checkout master 2.获取git pull 3.切换到dev分支git checkout dev 4.将master分支合并到dev分支git merge master 5.切换到自己工作的分支如zhjia分支git checkout zhjia 6.将dev分支合并到工作分支如zhjia分支git merge dev