安装
- 当前ubuntu镜像中已经安装好了git,以下步骤可以跳过
- 安装
sudo apt-get install git
git
配置
- 在ubuntu的命令行中,修改某台机器的git配置
- 修改为注册github时的邮箱,填写用户名,要求组员的用户名不能重复
经理——创建
使用流程
- 在实际项目开发中,按照如下步骤使用git进行代码管理
- 1.项目经理在开发之初,创建好仓库,上传项目的框架、组员分支
- 2.组员克隆项目框架,同步分支,按分工开发,在分支提交代码
- 3.在需要发布时,项目经理将各分支合并到dev上,再合并到master上
- git将代码开发分成了工作区、暂存区、仓库区,为了能够交换代码还需要有服务器,一般使用github
- git四部分的交互方式如下图
创建
- 在项目开始阶段,需要由项目经理搭建项目框架,并上传到仓库
- 如下操作都由项目经理完成
创建仓库
- 注册github账户,登录后,点击"start a project"
- 在新页面中,输入项目的名称,勾选'readme.md',点击'create repository'
- 添加成功后,转到文件列表页面,点击'create new file'创建新文件
*.pyc
.idea/
migrations/
- 点击'preview'查看预览,点击'create new file'完成创建
添加ssh账户
- 如果某台机器需要与github上的仓库交互,那么就要把这台机器的ssh公钥添加到这个github账户上
- 点击账户头像后的下拉三角,选择'settings'
- 点击'SSH and GPG keys',添加ssh公钥
添加ssh账户
- 如果某台机器需要与github上的仓库交互,那么就要把这台机器的ssh公钥添加到这个github账户上
- 点击账户头像后的下拉三角,选择'settings'
- 点击'SSH and GPG keys',添加ssh公钥
生成git密钥
rm -r .ssh
- 运行如下命令生成密钥
- 在“图标2”处可以填写保存密钥的目录
- 在“图标3”处可以填写密码,如果填写,一般为项目的名称,后续操作时会要求填写此密码
- 公钥名称为id_rsa.pub
- 私钥名称为id_rsa
ssh-keygen -t rsa -C "Github账号,可以是用户名,也可以是邮箱地址"
cat id_rsa.pub
添加ssh账户
- 如果某台机器需要与github上的仓库交互,那么就要把这台机器的ssh公钥添加到这个github账户上
- 点击账户头像后的下拉三角,选择'settings'
- 点击'SSH and GPG keys',添加ssh公钥
生成git密钥
rm -r .ssh
- 运行如下命令生成密钥
- 在“图标2”处可以填写保存密钥的目录
- 在“图标3”处可以填写密码,如果填写,一般为项目的名称,后续操作时会要求填写此密码
- 公钥名称为id_rsa.pub
- 私钥名称为id_rsa
ssh-keygen -t rsa -C "Github账号,可以是用户名,也可以是邮箱地址"
cat id_rsa.pub
生成git密钥
rm -r .ssh
- 运行如下命令生成密钥
- 在“图标2”处可以填写保存密钥的目录
- 在“图标3”处可以填写密码,如果填写,一般为项目的名称,后续操作时会要求填写此密码
- 公钥名称为id_rsa.pub
- 私钥名称为id_rsa
ssh-keygen -t rsa -C "Github账号,可以是用户名,也可以是邮箱地址"
cat id_rsa.pub
克隆项目
- 在浏览器中点击进入github首页,再进入项目仓库的页面
git clone git地址
错误处理
sign_and_send_pubkey: signing failed: agent refused operation
- 错误原因:在ssh账户中没有加入新生成的密钥
- 解决:将密码加入ssh账户
- 逐条运行如下命令
eval "$(ssh-agent -s)"
ssh-add
创建项目分支
- 每个员工开发期的代码互不干扰,并行开发,则每人使用一条分支
- 项目开发中公用分支包括master、dev
- 分支master用于发布,默认分支,当需要发布时将dev分支合并
- 分支dev开发阶段性的代码合并,每个阶段的工作完成后需要进行一次,控制项目的进度
- 成员分支用于每个项目成员的代码开发,实现不交叉
- 创建分支
git branch 分支名称
例:
git branch dev
git checkout 分支名称
例:
git checkout dev
git push origin 分支名称
例:
git push origin dev
git branch --set-upstream-to=origin/分支名称 分支名称
例:
git branch --set-upstream-to=origin/dev dev
git checkout -b 分支名称
例:
git checkout -b itcast
git branch
git branch -d 分支名称
没有例子,没错,就是没有例子,如果你删除了,我也找不回来哟
搭建项目框架
- 当前项目分支一共有3个,分别为master、dev、itcast,当前在itcast分支上工作
- 在克隆的目录下创建项目,使用django框架
git add dailyfresh/
git commit -m '搭建框架'
上传分支
- 当从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来
- 远程仓库的默认名称是origin
- 推送前github上文件列表如下图
- 推送分支,就是把该分支上的所有本地提交推送到远程库,推送时要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上
git push origin 分支名称
例:
git push origin dev
- 因为dev分支中没有文件操作,所以文件列表不变,但是分支列表增加了一项
- 点击垃圾桶可以删除指定分支,但是不要删
- 当前文件在itcast分支上,所以推送itcast分支
git push origin itcast
- 推送后github上文件列表如下图,注意在红线1处选择itcast分支
- 推送后github上分支列表如下图,在上图中点击红线2处
git checkout dev
git merge itcast
git push origin dev
git checkout master
git merge dev
git push origin master