导航:首页 > 配服务器 > 如何部署git到服务器

如何部署git到服务器

发布时间:2023-01-20 17:51:28

Ⅰ 如何用git把代码上传到服务器

如你本机新建Git项目 地址:git@github.com:yourName/yourRepo.git,远程代码库服务器地址:192.168.10.1,远程代码服务器账户名密码:admin 密码:123456
1.首先确保配置正确
a. 创建本地ssh-key
$ ssh-keygen -t rsa
在~/.ssh/下会生成 id_rsa.pub密钥文件
b.上传密钥文件 id_rsa.pub到代码服务器
$cat /home/XXXX/.ssh/id_rsa.pub | ssh admin@192.168.10.1 "cat >> ~/.ssh/authorized_keys"

会提示输如代码服务器密码,输入密码:123456即可。
c.添加全局变量:
$ git config –-global user.name ‘yourName’
$ git config –-global user.email ’yourEmail@yourEmail.com‘
2.进入要上传的git项目
$ git remote add origin git@github.com:yourName/yourRepo.git
之后进入.git,打开config,这里会多出一个remote “origin”内容,这就是刚才添加的远程地址,也可以直接修改config来配置远程地址。
3.提交、上传
a.接下来在本地仓库里添加一些文件,比如README,
$ git add README
$ git commit -m "first commit"
b.上传到代码服务器:
$ git push origin master
git push命令会将本地仓库推送到远程服务器。
git pull命令则相反。
修改完代码后,使用git status可以查看文件的差别,使用git add 添加要commit的文件,也可以用git add -i来智能添加文件。之后git commit提交本次修改,git push上传到代码服务器。

Ⅱ 把git 服务器上的代码传到 服务器

1. 访问服务器:ssh 用户名@ip

2. 然后输入用户名

3. 在输入密码

4. 切换用户 su + 用户名

5. 返回到主目录  cd ~

6. git pull

Django 项目,爱分享服务器上需要 �migrate

您确定在PYTHONPATH环境变量中安装并可用吗?你忘了激活虚拟环境吗?

需要切换到虚拟环境 在执行 migrate

切换 虚拟环境:

cd Evn/

workon + 项目名称

之后 重启服务器

Ⅲ 配置git连接远程码云仓库,并且码云仓库代码部署到服务器

``ssh-keygen -t rsa -C “您的邮箱地址”``

Your identification has been saved in /Users/you/.ssh/id_rsa.

# Your public key has been saved in /Users/you/.ssh/id_rsa.pub.

cd ~/.ssh

查看公钥

cat id_rsa.pub

复制粘贴到码云上

到本地项目文件夹下,右键点击空白处,选择Git Bash Here,进入git窗口

一波操作后的页面

whereis git

yum install -y git

git version

eg: cd /home/www/test

git init

git config --global user.name "您的用户名称"

git config --global user.email "您的邮箱地址"

git remote add origin 自己的仓库地址

eg:git remote add origin https://gitee.com/***/**.git

ssh -v git@gitee.com 

然后输入 yes

我拉取的是master分支

git pull origin master

如果拉文件的时候报这个错误,那么我们需要生成ssh公钥

ssh-keygen -t rsa -C"xxxxx@xxxxx.com"

查看当前公钥,并且将公钥添加到码云后台的ssh公钥中

git branch --set-upstream-to=origin/码云本地分支 服务器本地分支

eg:git branch --set-upstream-to=origin/master master

git config --global credential.helper store

到此、配置完成

Ⅳ 怎么用git部署

1. 下面我们以ubuntu server为例,介绍一下如何使用Git来管理项目代码,并且部署代码的web站点目录。

2. 1. 准备工作:
1台拥有SSH权限的服务器 (LNMP,git,ssh安装配置)
一台装有git客户端的PC (本文实际在windows下的msysgit操作)
3. LNMP,git,ssh安装配置
# 安装LNMP$ wget -c http://soft.vpser.net/lnmp/lnmp1.0-full.tar.gz && tar zxvf lnmp1.0-full.tar.gz && cd lnmp1.0-full && ./ubuntu.sh# 安装Git ssh$ sudo apt-get install git git-core ssh

windows下安装 msysgit
4. 2.在你的web服务器上建立git裸仓库、编写hooks、导入用户公钥、设置目录权限
在服务器上建立一个用户,这里命名为git,修改git的密码,并禁用shell登录
$ sudo useradd git# 修改git的密码$ passwd git# 禁用shell登录$ sudo vi /etc/passwd修改git:x:1001:1001:,,,:/home/git:/bin/bash为git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
初始化Git仓库,建立git 裸仓库,设置hook脚本(web目录需要git用户有权限,否则git的hook脚本将没有办法执行操作)
$ cd /opt $ mkdir git$ cd git$ sudo git init --bare demosite.git# 文件夹权限$ sudo chown -R git:git demosite.git$ cd /demosite.git/hooks$ sudo vi post-receive写入以下内容#!/bin/shGIT_WORK_TREE=/home/wwwroot/www.demosite.com git checkout -f# 写入权限$ chmod +x post-receive# 建立web目录,如果目录不存在,git不会创建目录的$ mkdir /home/wwwroot/www.demosite.com -p# web目录的文件夹权限$ sudo chown -R git:git /home/wwwroot/www.demosite.com

创建证书登录
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
客户端用户证书生成请参考下文。
5. 3.在git客户端生成公钥、导入服务器、coding 、add、commit、push
生成公钥,导入服务器
$ ssh-keygen -t rsa -C "your_email@youremail.com"一路回车或者设置密码windows下回提示在哪里生成了密钥windows8下提示在C:\Users\username\.ssh 下,linux的话会在~/.ssh下进入目录,打开id_rsa.pub,复制里面的key,添加到上文提到的web服务器的/home/git/.ssh/authorized_keys里。

clone coding add commit push
$ git clone git@serverip:/opt/git/demosite.gitCloning into 'demosite'...warning: You appear to have cloned an empty repository.$ cat 'hello world!' > index.html$ git add index.html$ git commit -m'first commit'$ git remote add origin ssh://git@serverip:/opt/git/demosite.git$ git push origin master

这里使用公钥来做权限验证,运行git里的hook的脚本权限为git用户的权限,当然你也可以使用自己在server上的用户来进行git操作,前面对于git用户的操作和客户端公钥的生成则可以省略,在git上脚本的执行权限则是你登录用户的权限,相应的origin的设置应该为:
$ git remote add origin ssh://yourusername@serverip:/opt/git/demosite.git

这时候每次push将需要输入密码验证。
忽略某些文件
你可以在你的顶层工作目录中添加一个叫".gitignore"的文件,来告诉Git系统要忽略 掉哪些文件,下面是文件内容的示例:
使"git add ." 和"git commit -a" 变得实际可用。
# 以'#' 开始的行,被视为注释.# 忽略掉所有文件名是 foo.txt 的文件.foo.txt# 忽略所有生成的 html 文件,*.html# foo.html是手工维护的,所以例外.!foo.html# 忽略所有.o 和 .a文件.*.[oa]#Eclipse.settings/*.buildpath.project

Ⅳ 如何搭建git服务器 windows

GitLab是由Ruby语言开发的基于Linux的Git服务器,是我见过的最强大的Git服务器。发现它之后,立即决定将Git服务器换成GitLab。但安装好GitLab之后面临一个问题,如何将服务器上的git项目直接导入到GitLab,之前的Git服务器是由是git+apache搭建的(详见在Linux上用Apache搭建Git服务器)。在网上发现了这篇文档——,并按之进行了操作。1)设置存放代码库的主目录vi/etc/gitlab/gitlab.rb比如这里设置为:git_data_dir"/gitlab/repos"2)访问刚搭建的GitLab站点,创建一个group,比如cnblogs。这时会在/gitlab/repos下创建/gitlab/repos/repositories/cnblogs文件夹。然后在/gitlab/repos/repositories/创建一个文件夹,比如cnblogs3)将现有的所有git项目文件复制到这个文件夹cp-r/data/git/*/gitlab/repos/repositories/cnblogs4)修改一下复制过来的文件夹的所有者:chown-Rgit:git/gitlab/repos/repositories/cnblogs5)运行GitLab导入命令cd/var/opt/gitlabgitlab-rakegitlab:import:repos等了一段时间之后,显示done,却一个项目也没导入进来。经研究发现,在导入时,GitLab只认文件夹名以.git结尾的项目。于是,将要导入的项目文件夹名称加上.git后缀,再次进行导入。结果显示导入成功,比如:Processingcnblogs/CNBlogsJob.git*CreatedCNBlogsJob(cnblogs/CNBlogsJob.git)Done!可以是GitLab站点上却看不到已导入的项目。多次努力,也没能解决这个问题。后来,实在没法,改为手动导入,导入方法如下:1)在GitLab站点上创建与要导入的项目同名的项目。2)进入刚创建的项目文件夹cd/gitlab/repos/repositories/cnblogs/项目名称.git3)删除该文件下的所有文件rm-rf*4)将要导入的项目文件夹下的所有文件复制过来cp-r/data/git/CNBlogsJob/*/gitlab/repos/repositories/cnblogs/CNBlogsJob.git就这样将项目一个一个地导入进来。5)导入完成后,修改一下导入的所有项目的文件所有者chown-Rgit:git/gitlab/repos/repositories/cnblogs如果不修改所有者,客户端无法进行gitpush。就这样手动地完成了现有Git项目的导入。备注:操作系统是CentOS6.2,GitLab版本是7.8.4。

Ⅵ 如何在mac下远程搭建git服务器

首先要有 ssh远程登陆的工具,比如secureCRT等

方案一 基于SSH直接搭建
Git支持的协议主要是四种:
本地: 需要文件共享系统,权限不好控制
HTTP:速度慢
SSH:同时支持读写操作,不支持匿名的读取(Git默认协议)
GIT:最快
从搭建的难易程度和特点综合筛选,最合适的还是ssh,并且大部分服务器上基本都有ssh服务,所以省去了不少麻烦。一个最基本的思路是给每一个人一个ssh帐号,这样大家就可以通过用户名和口令来访问了,但是显然这不是一个好的选择,这个做法有些多余,并且对于repo的权限很难管理。
在使用Github的时候,会利用rsa.pub公钥/私钥的方式,这样在服务端拥有用户的公钥(*.pub)之后就可以,跨过繁琐的口令,直接认证提交了,而服务端也会根据不同的用户身份,对其权限有着更加灵活的管理。因此我们也采用这种方式。
服务端
为了使远程库访问更加直观,先在服务器上创建一个名为git的账户,这样以后clone的时候就如下面的格式了:

git clone git@server:some.git

创建新的用户,创建repo等目录

$sudo adser git
$su git
$cd ~
$mkdir repos

在HOME下的.ssh目录,如果没有则创建,创建一个authorized_keys文件,这个文件就是用来管理所有git用户的公钥的,也就是这里面的用户对于项目有着R+W的权限。
客户端
对于每一个客户端,我们需要生成一对密钥和公钥,如果是Github用户,那么.ssh目录下,一定有id_rsa.pub和id_rsa两个文件,其中第一个是系统生成的公钥,另一个是自己要保存好的密钥。如果没有的话,可以在终端执行:ssh-keygen来生成,完成后,将自己的公钥提交给管理员,这就是一个注册的行为。
完成
最后一步,管理员将团队成员的公钥添加到authorized_keys中,比如将同学susie加入:

$ cat susie.pub >> authorized_keys

至此,大家可以通过git@server:repos/some.git来访问公共的版本库了。
问题
安全问题,成员可以登录git用户的shell,细节权限如分支等不好控制
管理麻烦,新建repo,或者增加成员比较麻烦,尤其是修改的时候
方案二 使用Gitolite服务
Gitolite 也是基于SSH协议构建的方便管理git repo的应用,可以通过其源码安装.
安装
安装按照官方给定的文档就可以轻易的实现:

$ git clone git://github.com/sitaramc/gitolite
$ mkdir -p $HOME/bin
$ gitolite/install -to $HOME/bin
$ gitolite setup -pk YourName.pub

如果执行最后一条命令的时候,gitolite不识别,则可以通过下面两种方式解决:
将gitolite添加到PATH里面
通过$HOME/bin/gitolite setup -pk YourName.pub 执行
至此,gitolite在服务端,搭建完毕,会发现此时HOME目录下增加了一个文件projects.list和一个目录repositories,后者就是我们的版本仓库了,每当新建repo的时候,就会在其中创建。
使用
是时候说一下gitolite的管理模式了,他会创建一个gitolite-admin的repo,管理员就是通过像这个repo提交配置文件而实现对git服务器的控制的。
首先,将这个repo导入到我们的workspace:在此之前,需要配置本地的ssh,gitolite要求管理员的本地密钥和其注册公钥的名字一致,比如我们安装的时候指定 -pk后面为 admin.pub 则管理员本地需要由admin对应的私钥。我们可以通过~/.ssh/config来进行配置(注:有些系统可以用conf,Mac OSX 下无效,只能用config).

host gitolite
user git
hostname yourhostname.com
port 22
identityfile ~/.ssh/admin

这样,当我们访问gitolite的时候就会自动根据配置文件执行,配置完成后可以根据下面的命令,将gitolite-admin转移到本地。

git clone gitolite:gitolite-admin.git

克隆完成后,可以发现,gitolite-admin下面有两个目录,其中conf保存配置文件,我们可以通过编辑里面的gitolite.conf文件,管理git服务器,keydir目录保存用户的公钥pub文件。
当我们讲修改后的repo 提交的时候,gitolite就会自动的应用这些配置,管理过程就方便了很多。
配置规则
打开gitolite.conf文件可以看到其中的示例:
To add new users alice, bob, and carol, obtain their public keys and add them to 'keydir' as alice.pub, bob.pub, and carol.pub respectively.
To add a new repo 'foo' and give different levels of access to these users, edit the file 'conf/gitolite.conf' and add lines like this:

repo foo
RW+ = alice
RW = bob
R = carol

上面的配置文件就是新建了一个repo foo,并且添加了三位项目成员,每一个人的权限不同。提交push后,管理便生效了。
可视化
我们可能会需要一个web界面来管理这些项目,我目前知道的有三种方式:
git源码中自带的组件,cgi脚本实现,使用gitolite服务
gitlab开源框架,基于ROR,新版本不再使用gitolite服务
FB开源PHP框架 phabricator,功能高端上档次

Ⅶ 如何通过git把本地的代码上传到服务器

1、首先需要安装Git,如果已经安装,请跳过。由于Git是Linux开发的,所以大部分使用在Linux系统上,但肯定会有windows版的,我本身使用的是win10,下载安装即可:https://git-for-windows.github.io/

2、安装好git服务器后。首先找到你项目的文件夹,比如项目名称为myproject,进入到这个文件夹,右键打开模拟linux风格的命令窗口

接下来依次执行命令:

git init // 初始化版本库git add . // 添加文件到版本库(只是添加到缓存区),.代表添加文件夹下所有文件 git commit -m "first commit" // 把添加的文件提交到版本库,并填写提交备注12345

到目前为止,我们完成了代码库的初始化,但代码是在本地,还没有提交到远程服务器,所以关键的来了,要提交到就远程代码服务器,进行以下两步:

git remote add origin 你的远程库地址 // 把本地库与远程库关联git push -u origin master // 第一次推送时git push origin master // 第一次推送后,直接使用该命令即可推送修改12345

把本地库的内容推送到远程。使用 git push命令,实际上是把当前分支master推送到远程。执行此命令后会要求输入用户名、密码,验证通过后即开始上传。
说明:用户名密码需要通过命令 ssh-keygen -t rsa -C “yourmail@qq.com”进行创建,并且要把得到的秘钥(公钥)文件放到git服务器上,这样才有权限进行代码推送

到此就成功的把本地的代码放到了远程服务器上,这样就能让项目组成员进行写作开发了。

Ⅷ 如何搭建linux git服务器

首先我们分别在Git服务器和客户机中安装Git服务程序(刚刚实验安装过就不用安装了):
[root@linuxprobe ~]# yum install git
Loaded plugins: langpacks, proct-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Package git-1.8.3.1-4.el7.x86_64 already installed and latest version
Nothing to do

然后创建Git版本仓库,一般规范的方式要以.git为后缀:
[root@linuxprobe ~]# mkdir linuxprobe.git

修改Git版本仓库的所有者与所有组:
[root@linuxprobe ~]# chown -Rf git:git linuxprobe.git/

初始化Git版本仓库:
[root@linuxprobe ~]# cd linuxprobe.git/
[root@linuxprobe linuxprobe.git]# git --bare init
Initialized empty Git repository in /root/linuxprobe.git/

其实此时你的Git服务器就已经部署好了,但用户还不能向你推送数据,也不能克隆你的Git版本仓库,因为我们要在服务器上开放至少一种支持Git的协议,比如HTTP/HTTPS/SSH等,现在用的最多的就是HTTPS和SSH,我们切换至Git客户机来生成SSH密钥:
[root@linuxprobe ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
65:4a:53:0d:4f:ee:49:4f:94:24:82:16:7a:dd:1f:28 root@linuxprobe.com
The key's randomart image is:
+--[ RSA 2048]----+
| .o+oo.o. |
| .oo *.+. |
| ..+ E * o |
| o = + = . |
| S o o |
| |
| |
| |
| |
+-----------------+

将客户机的公钥传递给Git服务器:
[root@linuxprobe ~]# ssh--id 192.168.10.10
root@192.168.10.10's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '192.168.10.10'"
and check to make sure that only the key(s) you wanted were added.

此时就已经可以从Git服务器中克隆版本仓库了(此时目录内没有文件是正常的):
[root@linuxprobe ~]# git clone root@192.168.10.10:/root/linuxprobe.git
Cloning into 'linuxprobe'...
warning: You appear to have cloned an empty repository.
[root@linuxprobe ~]# cd linuxprobe
[root@linuxprobe linuxprobe]#

初始化下Git工作环境:
[root@linuxprobe ~]# git config --global user.name "Liu Chuan"
[root@linuxprobe ~]# git config --global user.email "root@linuxprobe.com"
[root@linuxprobe ~]# git config --global core.editor vim

向Git版本仓库中提交一个新文件:
[root@linuxprobe linuxprobe]# echo "I successfully cloned the Git repository" > readme.txt
[root@linuxprobe linuxprobe]# git add readme.txt
[root@linuxprobe linuxprobe]# git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached ..." to unstage)
#
# new file: readme.txt
#
[root@linuxprobe linuxprobe]# git commit -m "Clone the Git repository"
[master (root-commit) c3961c9] Clone the Git repository
Committer: root
1 file changed, 1 insertion(+)
create mode 100644 readme.txt
[root@linuxprobe linuxprobe]# git status
# On branch master
nothing to commit, working directory clean

但是这次的操作还是只将文件提交到了本地的Git版本仓库,并没有推送到远程Git服务器,所以我们来定义下远程的Git服务器吧:
[root@linuxprobe linuxprobe]# git remote add server root@192.168.10.10:/root/linuxprobe.git

将文件提交到远程Git服务器吧:
[root@linuxprobe linuxprobe]# git push -u server master
Counting objects: 3, done.
Writing objects: 100% (3/3), 261 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To root@192.168.10.10:/root/linuxprobe.git
* [new branch] master -> master
Branch master set up to track remote branch master from server.

为了验证真的是推送到了远程的Git服务,你可以换个目录再克隆一份版本仓库(虽然在工作中毫无意义):
[root@linuxprobe linuxprobe]# cd ../Desktop
[root@linuxprobe Desktop]# git clone root@192.168.10.10:/root/linuxprobe.git
Cloning into 'linuxprobe'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
[root@linuxprobe Desktop]# cd linuxprobe/
[root@linuxprobe linuxprobe]# cat readme.txt
I successfully cloned the Git repository

这篇是详细介绍Git的,中间有一部分是怎么去搭建,你可以看下

Ⅸ 在Linux下搭建Git服务器

众所周知,版本系统在开发环境中是必不可少的,但是我们可以把代码免费的托管到GitHub上,如果我们不原意公开项目的源代码,公司又不想付费使用,那么我们可以自己搭建一台Git服务器,可以用Gitosis来管理公钥,还是比较方便的。

搭建环境:

服务器 CentOS6.6 + git(version 1.8.3.1)

客户端 Windows10 + git(version 2.11.1.windows.1)

1. 安装Git相关软件

Linux是服务器端系统,Windows作为客户端系统,分别安装Git

安装客户端:

下载 Git for Windows,地址:https://git-for-windows.github.io/

安装完之后,可以使用Git Bash作为命令行客户端。

安装Gitosis

出现下面的信息表示安装成功了

2. 服务器端创建git用户来管理Git服务

3. 配置公钥

在Windows上配置管理者,git服务器需要一些管理者,通过上传开发者机器的公钥到服务器,添加成为git服务器的管理者,打开git命令行

4. 配置gitosis

使用git用户并初始化gitosis

在Windows上机器上clone gitosis-admin到管理者主机

gitosis.conf: git服务器配置文件

keydir: 存放客户端公钥

配置 gitosis.conf 文件

在Windows管理者机器上创建本地test仓库,并上传到git服务端

提交到远程服务器

服务端会自动创建test仓库

5.添加其他git用户开发者

由于公司开发团队人数不断增多,手动添加开发者私钥到/home/git/.ssh/authorized_keys比较麻烦,通过上面的Windows机器的管理者统一收集其他开发者的私钥id_rsa.pub文件,然后传到服务器上,配置好后,用户即获得项目权限,可以从远程仓库拉取和推送项目,达到共同开发项目。

推送完成后,新加进来的开发者就可以进行项目的开发了,后续增加人员可以这样添加进来,开发者直接把仓库clone下来就可以了。

阅读全文

与如何部署git到服务器相关的资料

热点内容
ping查询ip地址服务器 浏览:494
车辆抵押后没有解压能过户吗 浏览:149
无中文水果溯源码 浏览:989
服务器中roce是什么 浏览:368
我的世界命令方块辅助箱子指令 浏览:403
c源码调试 浏览:859
银行app如何加入支付保护中心 浏览:348
如何让qq和别的app解绑 浏览:409
贵阳哪里有华大单片机 浏览:755
ps4手柄怎么连接安卓 浏览:490
夫妻生活pdf 浏览:367
android的广播和服务 浏览:318
linux下载浏览器 浏览:109
荣耀30服务器地址 浏览:971
用什么框架写restful服务器 浏览:188
产品狗程序员项目 浏览:454
命令方块建家园 浏览:261
m3为什么连接不到服务器 浏览:825
代刷网服务器错误是什么意思 浏览:110
系统优化与编译技术 浏览:349