Git入门

这里以git.oschina.net为例(oschina可以免费创建私有项目,github创建私有得花钱)。

第一步,我们需要先注册个git帐号,这里就不说了。这个oschina提供的git服务其实就是给我们一个空间,我们的代码可以传上去由oschina保管。

第二步,新建项目,填上项目名称,git地址等信息以后,就可以新建一个项目了。

第三步,填加ssh的key,添加key的作用是允许你的电脑访问git仓库。如果git项目是私有的,那么就要指定谁可以访问谁不能访问。我们把自己计算机上的ssh key添加到git项目上,就表示我们电脑里的key能访问了,可以理解成key的白名单。配置方法如下:

# 邮箱地址填注册git时用的邮箱,然后按3个回车。
ssh-keygen -t rsa -C "xxx@happymmall.com"

# 在git.oschina的项目里添加公钥,查看公钥内容:
cat ~/.ssh/id_rsa.pub

第四步,配置本地的git选项,可以在用户目录下,用户目录下,用户目录下!新建一个.gitconfig文件,把下面的内容放里面。其中的name是在提交代码时使用的名称,可以随意指定,还有一个是email,这个email一定要和注册git时使用同一个。

[user]
    name = Rosen
    email = xxx@happymmall.com
[alias]           
    co=checkout           
    ci=commit           
    st=status           
    pl=pull           
    ps=push           
    dt=difftool           
    l=logstat           
    cp=cherry-pick           
    ca=commit -am           
    b=branch
[push]
    default = simple

这个配置文件中的alias是一些命令的快捷键,比如切换分支是git checkout xxx,如果配置了alias,就可以直接输入git co xxx,这两个命令是等价的。
push一项配置成simple,表示是在push的时候只把当前分支推送到远程对应的分支上。这个也可以不配置,因为git2.x版本以后,默认的就是simple模式。

第五步,从远程拉下代码,这git项目就算建好了。

# 使用项目的ssh形式的地址
git clone xxx
场景2:我要开始开发了,要怎么玩?

进入开发前,要先了解git的分支使用规范。当我们项目clone下来以后,默认会处在master分支上,也就是git的默认分支。通常我们是不在这个分支上做开发的,如果更规范一点,master分支会对开发人员设置成只读的,最终由上线人员把要上线的代码合并到master分支上。这时候我们就要做一个自己的开发分支。执行如下:

# 切换到master分支
git checkout master

# 拉取最新代码
git pull

# 以master分支为基础,新建本地分支,新分支名以mmall_v1.0为例
git checkout -b mmall_v1.0  

# 在远程建立对应的分支,只有新建分支时需要执行这步,以后只需要git push
git push --set-upstream origin mmall_v1.0

然后就可以在新分支上开始写代码。

场景3:我要在一个已有的分支上开发点东西

因为是已有分支,就不用自己新建了,直接切换到指定分支,这里还是以mmall_v1.0为例。

# 切换分支
git checkout mmall_v1.0

# 拉取当前分支最新代码
git pull

然后还是一样的,就可以进入开发了。

场景4:开发到一定程度,想看看改动了什么内容
# 看文件的改动
git status

# 看文件内容的变动
git diff
场景5:代码开发完成了,想提交代码
# 首先是追踪变更的文件
git add .

# 然后提交到本地
git commit -am '我是提交的说明'

# 提交到远程
git push
场景6:当前分支代码都开发完了,准备提交上线

在上线的时候,一般是由管理员或发布人员把开发分支的代码合并到master分支上,上线前我们要先把远程master最新的代码合并到我们的分支上再提交,才能保证我们的开发分支版本高于master分支。如果不这么干,有多个人开发的话,就有可能造成A发布了一个版本,等B发布的时候会把A发布的内容冲掉。

# 合并远程分支
git merge origin master

# 注意:如果发现merge的结果里有CONFLICT,就表示当前分支和远程master分支有文件冲突,我们要手动解决一下冲突再做一次提交才可以。

# 没冲突或解决完冲突后,提交到当前分支的远程
git push

merge完成后,就可以做提交了,通常使用pull request提交合并到master分支的请求,管理员合并后,我们的分支内容就可以上线了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值