git工作流

来源:互联网 发布:聚食汇软件功能说明书 编辑:程序博客网 时间:2024/05/07 10:39

日常使用git,一般只需掌握add、commit、checkout、reset、branch、merge、push几个基本操作即可。

这里有一个git教程,廖雪峰的git教程,写得非常通俗易懂,我就不再画蛇添足另开git系列,仅记录个人在使用过程中遇到的问题与积累的经验。

要开始一个多人协作项目,我们首先需要在代码托管平台注册一个帐号,我们以github为例,在线新建一个git仓库:

一、新建git仓库

如图点击新建仓库链接:
create_repo
然后会进到如下界面:
添加READEME和license
一般都都回初始化一个README文件和一个license。

二、克隆仓库到本地

在线创建好仓库后,就可以把仓库克隆到本地进行工作了。

在任意文件夹中,使用如下命令克隆仓库:

git clone 仓库地址

克隆仓库分为两种方式——

一种是https方式,它的仓库地址类似于https://github.com/zyour_username/project_name.git,使用此种类型的地址克隆到本地,向在线仓库推送更改的时候需要每次输入用户名和密码。

而另外一种就是ssh的方式,它的地址类似于:git@github.com:your_username/project_name.git

使用这种方式不会要求输入帐号密码,但是需要配置好ssh公钥:

三、ssh公钥配置

账户 SSH 公钥是跟用户账户关联的公钥,一旦设置,就拥有账户下所有项目仓库的读写权限。

SSH公钥的配置有如下流程:

1、生成公钥

bash下使用如下命令生成一对rsa密钥:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com(注册的邮箱)"  

会得到如下反应:

Generating public/private rsa key pair.  Enter file in which to save the key (/home/zeta/.ssh/id_rsa): 

直接点击回车即可,一对密钥会保存在~/.ssh文件夹下。

2、添加公钥

登陆github,在右上角的头像点击setting,然后选择SSH and GPG keys设置项,点击New SSH key

然后进入刚刚存放公钥的目录~/.ssh,打开id_rsa.pub,把里面全部的内容复制到输入框里点击确定。

这样,你就拥有了你的账户的所有的读写权限,可以将你本地的修改直接使用git命令行推送到本项目的在线仓库。

完成后在命令行测试:

ssh -T git@github.com

首次建立链接会要求信任主机,输入yes点回车即可。

这样,就可以在本地编写代码,然后将本地仓库的更改同步到在线仓库中。
克隆仓库后,git会自动将远程仓库命名为origin。

尝试进行一次提交:

git push -u origin master

上述命令会将本地的所有更改提交到远程仓库,同时会将本地的master分支和远程的master分支关联起来。

四、开发流程

在将仓库克隆到本地后,就可以在本地进行开发工作。

假设要向项目里添加一个新特性,一般的流程是这样的:

  1. 从master新建一个分支(假设叫feature)
  2. 在feature分支上进行新特性的开发
  3. 新特性开发完成
  4. 将feature分支合并到master分支上
  5. 删除feature分支

这样子,本地的项目就成功添加了一个新特性,然后再将本地的修改推送到远程仓库即可。

bug的修改也遵循同样的流程,新建分支——修改bug——合并到master。

现将各阶段的操作说明如下:

1、新建并切换到新分支

在项目文件夹下,使用如下命令新建一个名叫feature的分支:

git branch feature

然后切换到新分支工作:

git checkout feature

也可以使用一条命令完成以上两个任务:

git checkout -b feature

2、在新分支上开发新特性

写代码然后commit即可。

3、合并分支到master

首先切换到master分支:

git checkout master

然后将feature分支合并到master:

git merge feature master

通常情况下,master分支的内容会被设定为与feature分支一模一样。

但如果在feature分支开发的同时master分支也有了新的更改,就需要手动解决冲突:参考[解决冲突]。

4、推送更改到远程仓库

使用刚才提到的push命令将master上做出的的所有更改推送到远程仓库:

git push orgin master

可能会出现推送失败的情况:

xxxxxxhint: Updates were rejected because the remote contains work that you do  hint: not have locally. This is usually caused by another repository pushing  hint: to the same ref. You may want to first integrate the remote changes  hint: (e.g., 'git pull ...') before pushing again.  hint: See the 'Note about fast-forwards' in 'git push --help' for details.  

这是因为远程仓库发生了更改,即其他的小伙伴提交了一些你没有克隆到的修改。

使用pull命令将小伙伴的更改拉取到本地即可:

git pull

pull的时候仍需要解决冲突,比如你和你的小伙伴修改了同一个文件的时候,这时候仍需要手动解决冲突:[解决冲突]。

然后再使用push命令推送更改:

git push orgin master

至此,完成了线上仓库的一次小版本更新。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 电脑表格中删去多余框线怎么办 农村教学点招不到学生老师怎么办 wps卡死了打的东西没保存怎么办 华为手机浏览器边框颜色变了怎么办 打印机打出来的字两边少怎么办 wps表格分页时表格断了怎么办 word里的表格一页放不下怎么办 表格上红色的字不能删除怎么办 渐变区的选择框变得很大怎么办 用乐秀编辑短片后两边有边框怎么办 安卓手机相机图标没有了怎么办 三星s6不充电就死机了怎么办 三星s7通话感应器不管用了怎么办 卡贴苹果8p一直跳激活怎么办? 宝宝添了小狗添过的袋子怎么办 猫咪卡在屋顶的缝隙里怎么办 大臂的图案纹小了怎么办 双面板已经贴片还要插件后焊怎么办 黑板摔在地上有木头屑怎么办 白衣服蓝袖子漂花了怎么办 白衣服泡了一夜袖子发黄怎么办 小孩的胳膊肘关节处摔断开了怎么办 生完孩子以后奶头总有脏东西怎么办 月经有黑乎乎的脏东西下不来怎么办 四季梅叶子打卷花从粉变白怎么办 新移栽的竹子出来太细怎么办 土培富贵竹长得太高了怎么办 毛竹加工厂被环保查了该怎么办? 领养姐姐家的孩子怎么办领养手续 孩子喝了点杯子变质发霉的水怎么办 杯子发霉没洗干净喝了水怎么办 小孩的咪咪头没有突出来怎么办 手被竹子刺了肿了怎么办 紫竹刚栽叶子发枯怎么办能活吗 移栽大田的水稻过施了氮肥怎么办 股骨术后六十天有小量骨痂怎么办 被桃树上的蜂蜜咬了怎么办 照片回收站密码找不回来了怎么办 扣扣空间照片回收站密码忘了怎么办 我眼睛近视了不想戴眼镜怎么办 微信聊天对方只回一个字怎么办