第二天,Ruby on Rails,Git版本控制,更新到远程仓库,部署

2018年11月30日

用Git做版本控制,我们暂时不用smartgit,就用本地的git。

在使用之前要做一些系统设置,设置你的用户名和邮箱,这个设置只需一次

$ git config --global user.name "dongfangyier"
$ git config --global user.email "[email protected]"

上一篇文章里 $ rails new hello_app 新建了一个项目,以这个项目为例介绍一下版本控制。进入项目的根目录,这里是和hello_app,初始化仓库

$ git init

然后执行$ git add -A,把所有文件放到仓库中

$ git add -A

查看仓库状态

$ git status

此时可以看到许多新增文件还没有提交,如果想把这些文件保存到仓库,使用命令

$ git commit -m "first commit"

-m后面是用来添加本次提交的说明。使用git的好处很多,最明显的一点就是,如果不小心误删了重要的文件,此时查看仓库状态git status,就会发现这个删除操作还没有提交到仓库,这时可以用命令强制撤销删除:

$ git checkout -f
$ git status

以上步骤是本地的版本控制,我们接下来讲远程的版本控制,即推送到代码托管的网站,例如github、bitbucket、gitlab、码云等等,我用的是码云,国内服务器跑得快。在码云注册一个帐号,可以免费使用托管仓库,用来做项目的备份也不错。在码云新建一个项目例如hello_app(我的是https://gitee.com/dongfangyier/hello_app),然后回到本地终端,在项目根目录,这里是hello_app文件夹下,刚刚已经做了本地的提交,现在推送到远程仓库:

$ git remote add origin https://gitee.com/dongfangyier/hello_app.git
$ git push -u origin master

如果push成功,此时可以看到码云对应项目的代码已经上传上来了

出现的问题:

  1. 无法推送,远程仓库包含本地尚不存在的提交,这一般是由于在码云上建项目时,添加了自述文件readme,不是本地提交的,解决方法是:最简单的,删除对应远程仓库所有文件,再push本地的上去;另一种是合并提交,先pull下来,合并,再push
    $ git pull origin master
    $ git add -A
    $ git commit -m "merge"
    $ git push -u origin --all

    我的测试项目截图

  2. Pull is not possible ,unmerged files:(非常不建议,可能会丢失东西)
    $ git ret --hard FETCH_HEAD
  3. 注意,push前先$ git add -A,查看一下本地状态$ git status,如果有新文件没有提交就先$ git commit -m "changed..."最后再push到远程仓库,这是最稳妥的方法。如果只是更改了文件的内容而没有增删文件的话,可以跳过add -A,直接在提交的时候 -a
    $ git commit -a -m "changed..."
  4. 删除误建的仓库,在该目录下删除 .git 文件就可以了
    $rm .git -rf

可以在码云上新建两个项目仓库,另一个做备份使用,万一操作失误还可以pull备份的仓库。

简单的讲一下版本管理的分支、编辑、提交、合并的思想。简单来说,很多人一起建设同一个项目,每人一部分任务,然后每人就在master下新建一个子分支,编辑完他们这部分任务后,提交各个子分支,确认无误后再合并到主分支master上去。

分支:新建分支后,查看分支结构,并且进入子分支。

$ git checkout -b newbranch
Switched to a new branch 'newbranch'
$ git branch 
  master
* newbranch

编辑、提交前面已经讲过了,不再赘述,后面讲合并

首先,切换回主分支,然后合并merge

$ git checkout master
$ git merge newbranch

此时合并已经完成,可以清理一下子分支

$ git branch -d newbranch 
$ git push

然后是搭建Heroku部署环境,我大概讲一下流程,但我还没实现,因为注册的时候网站说我是robot,一直验证通过不了,没办法login

安装Heroku:

$ sudo snap install heroku --classic

修改项目目录下的Gemfile文件,加两段代码

group :production do
gem 'pg', '0.18.4'
end##增加一段

group :development, :test do
gem 'sqlite3', '1.3.11'###增加一行
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end

再执行命令

$ bundle install --without production

查看heroku版本

$ heroku version

接下来就是login了,login后面的我没做,可以列在这里供你们参考

$ heroku login
$ heroku keys:add
$ heroku create

$ git push heroku master

这样就完成了项目的部署。

谁知道这个怎么解决?我不是robot啊啊啊啊~

猜你喜欢

转载自blog.csdn.net/yier_1/article/details/84666849