编程学习

利用github作为代码仓库进行git管理

2020-11-30  本文已影响0人  myshu

和gitlab仓库类似,也可以使用github作为远程仓库

整体操作的大概思路是这样的:

大概思路

Github网站相当于一个中转库,当然也是同一个project的最终版本的库!

github和其他地方的连接主要是依靠SSH key,然后就是不同库与github之间的push,pull等常规操作啦~

1、配置SSH

首先在Github网站上设置ssh,因为远程仓库都是根据ssh key进行同步的。

如果你希望从本地电脑到github网站之间进行代码管理,则需要本地电脑的SSH;

如果你还希望从服务器到github网站代码管理,则还需要配置服务器的SSH

增加SSH非常简单

【本地电脑】

需要安装git bash

下载安装即可,然后打开,界面操作和xshell类似

我们的SSH密钥就是这个文件,如果没有的话在home目录运行ssh-keygen.exe即可

复制这一堆,之后会用到


【服务器端】

和电脑上的类似

ssh-keygen   # 如果没有id_rsa.pub文件时运行
cat ~/.ssh/id_rsa.pub

【github网站】

登录自己的账户,然后点击右上角的图标,选择Settings


然后找到SSH and GPG keys,点击绿色的New SSH key按钮新建SSH,拷贝我们上面复制好的key进去即可

2、程序库初始化

首先需要在github上新建仓库

这里我的代码是在自己的电脑上面,整理好需要同步的程序文件夹,然后打开git bash, cd到这个目录


接着初始化(在git bash中运行)

# 切换到代码目录,然后配置git,配置到远程
git init
git add .
git commit -m "first commit"
git remote add origin git@github.com:myshu2017-03-14/FilterData.git  # 把本地库与远程库关联
git push -u origin master  # 第一次推送时
git push origin master  # 第一次推送后,直接使用该命令即可推送修改

注意上面这里的git@...,可以直接从github网站上获取

最后就是在服务器端同步代码了,非常简单,直接从github中拉取即可

git clone https://github.com/myshu2017-03-14/test.git # 先拷贝到本地
cd test/
git pull

我在运行git pull的时候报错:


网上查了后,可以直接在安装的git目录下增加一个.gitconfig,其中写入如下内容即可

[http "http://proxy.corpadderess:8080"]
sslVerify = false
proxy =

最后再次git pull就没问题了!

3、程序库之间拉取

至此,我们在本地电脑<=>github网站<=>服务器端同步了代码库。我一般是在电脑上用编辑器编辑,然后再push到github网站,最后服务器从github上拉取更新。

具体操作如下:

【本地电脑编辑器Pycharm】

我用的是pycharm,如果是其他的编辑器可以看下是否找到类似的入口,也可以直接使用git bash

git status  # 查看状态
git commit -am "smy" # 这里的-a表示上传所有的修改的文件,-m表示上传信息,大家可以根据自己的需求来编辑修改
git push # 推到github上去

【服务器端】

直接cd到目录下面,git pull即可。这里有一个小技巧,大家可以使用shell的alias设置快捷键来运行拉取的操作,这样就不用每次cd过去了。

设置方法:

vim ~/.bashrc
# 写入alias gpull='dir=`pwd`&&cd <你的代码路径> && git pull&& cd $dir'
source ~/.bashrc
gpull  # 之后更新后要拉取直接运行这个代码即可

4、程序库管理

我一般是在开发分支上面做开发,master用于拉取同步


思路

分支管理

# 服务器上
# 1、有一个文件夹固定为流程目录master分支:
   - 更新步骤
      git checkout dev  # 先切换到dev分支
      git pull                 # 更新好dev分支
      git checkout master    # 切换回master分支
      git merge dev      # 合并分支
      git push               # 推送

# 2、有一个为测试文件夹dev分支,用于服务器上代码测试:
#    - 直接和自己电脑和gitLab上同步

# 自己电脑pychram
# 切换在dev分支上
git status 查看
git commit  -am "update" #提交
git push # 推送

5、不同gitlab仓库之间同步

有时候面临着代码需要同步到另一台机子的gitlab上面,就涉及到了不同gitlab仓库之间的同步。有一个非常好用的方法,就是Repository mirroring。可以把一个gitlab上面的代码做一个镜像完全同步到另一个gitlab。具体操作如下:
首先定义一下:

Old: 旧gitbal仓库
New: 新gitlab仓库

首先在New上新建一个空的project, 记录新建的项目链接:https://<用户名>@<项目链接>, 在https后面加上用户名@

新建项目

然后在Old上面选择setting=> Repository => mirroring repositories

然后拷贝上面记录的New的URL,然后填上密码,点击创建mirror


之后每次在这里点下更新的按钮同步即可!
上一篇 下一篇

猜你喜欢

热点阅读