ftp与git
Ⅰ 如何将服务器上的ftp,ssh,git统一管理
第一步,在服务器上创建git专用的用户
# 创建 git 用户
useradd git
# 设置密码
passwd git
# 创建 git 组
groupadd git
# 将 git 用户添加到 git 组
usermod -a -G git git
第二步,创建仓库目录并授权
# 创建仓库所在目录,需要使用 root 权限
sudo mkdir /opt/git
# 设置组内读写权限
sudo chmod 775 /opt/git
# 将仓库所在目录拥有组改为 git
sudo chgrp -R git /opt/git
第三步,配置免密登录 ssh
# 在客户端电脑上命令行执行,windows系统可以使用 git bash(安装git的时候自带的)
ssh-keygen -t rsa
# 一路回车,生成公钥,查看公钥内容(在当前用户目录下有个隐藏目录.ssh)
cat ~/.ssh/id_rsa.pub
将内容复制
# 将内容复制,服务器端切换到 git 用户
su git
# 回到用户home目录
cd ~
# 创建 ~/.ssh 并授权,保险起见,我们以下都使用绝对路径
mkdir ~/.ssh && chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
# 编辑 authorized_keys文件
# 将刚刚复制的公钥内容粘贴(vim 命令: i 进入编辑模式,esc回到命令模式,:wq 保存并退出)
vim ~/.ssh/authorized_keys
第四步,添加新的项目到git中央仓库
# 进行你的项目所在目录
cd myproject
# git 初始化
git init
# 将当前目录及所有子目录添加到暂存区
git add .
# 将暂存区的内容全部提交到本地仓库
git commit -m ‘initial commit’
# 添加到远程git仓库,名称为 myproject
git remote add origin git@gitserver:/opt/git/myproject.git
# push本地仓库内容到远程仓库
git push origin master
搞定!!!
# 添加完成之后其他人就可以通过git clone来克隆此仓库和push改动了
git clone git@gitserver:/opt/git/myproject.git
cd myproject
vim README
git commit -am ‘fix for the README file’
git push origin master
Ⅱ 如何在windows上安装并使用git
Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP,HTTPS,SFTP等协议也能实现Git共享,此文档不讨论),但是SSH有客户端服务器端,所以在windows下的开发要把自己的Git仓库共享出去的话,就必须做SSH服务器。一、安装GITWindows下使用msysgit,本文使用Git-1.7.8-preview20111206.exe安装要点步骤安装完成后,可以使用Gitbash在命令行模式下操作git二、安装CopSSH安装CopSSH之前先确保防火墙开启了SSH端口,这个虽然不影响CopSSH的安装,但是影响SSH访问,所以写在前面。CopSSH是windows下的SSH服务器软件,下载地址之,本文使用的是Copssh_4.1.0_Installer.exe,安装完成后,到控制面板中新建一个管理员账户root,用这个账户来共享SSH。然后你在账户管理中会看到之前的SvcCOPSSH账户。将root用户添加到CopSSH用户中,为简单操作,允许使用密码认证方式若是不允许密码认证,则需要使用公钥密钥方式认证,三、CopSSH中使用GIT现在已经安装GIT和CopSSH,接下来需要做的就是让CopSSH可以使用GIT的命令,这样不仅能够远程SSH管理GIT服务器,而且可以将GIT仓库通过SSH共享。具体的操作方法是将GIT的某些命令程序和动态链接库复制到CopSSH安装目录下即可。l将$Git\libexec\git-core目录下的git.exe,git-receive-pack.exe,git-upload-archive.exe,git-upload-pack.exe复制到$ICW\bin目录下l将$Git\bin目录下的libiconv-2.dll复制到$ICW\bin目录下重启CopSSH即可
Ⅲ 代码没有git用ftp上传了怎么办
1.全部更新,不管某些文件是否修改,都要重新传一下服务器,浪费时间与流量
2.多台服务器的重复上传
3.代码更新后,后续的一些操作不够自动化
Ⅳ 使用git,用命令好还是客户端好
Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不讨论),但是SSH有客户端服务器端,所以在windows下的开发要把自己的Git仓库共享出去的话,就必 须做SSH服务器
Ⅳ git的pull和clone有什么区别
一、git pull
git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。
完整格式:$ git pull <远程主机名> <远程分支名>:<本地分支名>
完整格式举例:比如,取回origin主机的next分支,与本地的master分支合并,需要写成下面这样,
(1)$ git pull origin next:master:如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
(2)$ git pull origin next:上面命令表示,取回origin/next分支,再与当前分支合并。实质上,这等同于先做git fetch,再做git merge。
$ git fetch origin
$ git merge origin/next
在某些场合,Git会自动在本地分支与远程分支之间,建立一种追踪关系(tracking)。比如,在git clone的时候,所有本地分支默认与远程主机的同名分支,建立追踪关系,也就是说,本地的master分支自动”追踪”origin/master分支。
Git也允许手动建立追踪关系,git branch --set-upstream master origin/next
上面命令指定master分支追踪origin/next分支。如果当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名。
$ git pull origin
上面命令表示,本地的当前分支自动与对应的origin主机”追踪分支”(remote-tracking branch)进行合并。
如果当前分支只有一个追踪分支,连远程主机名都可以省略。
二、get clone
远程操作的第一步,通常是从远程主机克隆一个版本库,这时就要用到git clone命令。
(1)$ git clone <版本库的网址>
比如,克隆jQuery的版本库。
$ git clone https://github.com/jquery/jquery.git
该命令会在本地主机生成一个目录,与远程主机的版本库同名。如果要指定不同的目录名,可以将目录名作为git clone命令的第二个参数。
(2)$ git clone <版本库的网址> <本地目录名>
git clone支持多种协议,除了HTTP(s)以外,还支持SSH、Git、本地文件协议等,下面是一些例子。
$ git clone http[s]://example.com/path/to/repo.git/
$ git clone ssh://example.com/path/to/repo.git/
$ git clone git://example.com/path/to/repo.git/
$ git clone /opt/git/project.git
$ git clone file:///opt/git/project.git
$ git clone ftp[s]://example.com/path/to/repo.git/
$ git clone rsync://example.com/path/to/repo.git/
(3)SSH协议还有另一种写法。
$ git clone [user@]example.com:path/to/repo.git/
通常来说,Git协议下载速度最快,SSH协议用于需要用户认证的场合。
Ⅵ 如何在Windows Azure上托管一个Node.js网站
通过Git将Node.js部署在Windows Azure网站上
Windows Azure网站 (以下简称 WAWS)是微软六月份Meet Windows Azure活动中推出的新服务。它提供了低成本、内置的模版,并易于部署到云端。
我认为WAWS是我们部署Node.js网站最简易的方式。
- IIS和IISNode已在WAWS环境中安装配置好,所以我们部署时不用安装任何东西。
- WAWS 支持多种部署方法,包括TFS、FTP以及Git。对Node.js来说,FTP和Git较简单快捷。
- WAWS提供三种不同的扩展模式,他们都是免费的、共享的、保留的。若我们只需一个具备数据库的网站,那这样的花费比Windows Azure云服务(以下简称 WACS)要低的。
- WAWS支持Windows Azure SQL数据库(以下简称WASD)和MySQL。
我们来看下,用Node.js在WAWS上建立一个网站是多么的简单、容易。首先,我们需要创建一个新的WAWS。由于本文后面我要示范如何从Node.js中用WASD,我们也将创建一个WASD。前往windows azuredeveloper portal,从NEW button中选择COMPUTERàWEB SITEà CREATE WITH DATABASE。
网站一旦创建,我们前往它的控制面板,点击右侧的Set up Git publishing链接。
片刻之后,Windows Azure会完成Git部署配置。如果这是你第一次在Windows Azure上配置Git或FTP 部署,你需要点击控制面板上的Reset deployment credentials链接来为部署提供用户名和密码。
Ⅶ Git该怎么部署代码
首先,说一点很重要的,创建一个新项目之后,hostker服务器上得到的并不是一个空项目,直接push会报non-fast- forward。此时万万不可使用--force来进行push,否则只能上ftp手动处理冲突或者砍了重练。
正确的姿势有两种,一种是抛弃旧的git项目,将hostker的远端项目clone下来之后,用自己的代码整体覆盖进去,如果没有index.html就删掉带进来的index.html,然后再进行commit和push,即可正常部署,但是这种方案会丢失以前的git log。
还有一种方式推荐对git比较熟悉的人使用
首先进入工作目录
执行
Shell
git remote add hostker https://git-ct.smartgslb.com/xxxx
git fetch
输入自己的邮箱和密码后,fetch到hostker的init信息
用
Shell
git branch
确认当前在master分支上后,使用
Shell
git rebase remotes/hostker/master
这一步会依据以前git历史的多少,耗时有所不同
完成后再执行
Shell
git log
就能够看到有一条时间是应用创建时间,作者为Hostker Computing Node <[email protected]>的commit躺在历史的最远端,以前的log按照正常顺序排列
然后再
Shell
git push
就能够正常部署了
Ⅷ 有了svn或者git还需要部署ftp吗
1.全部更新,不管某些文件是否修改,都要重新传一下服务器,浪费时间与流量
2.多台服务器的重复上传
3.代码更新后,后续的一些操作不够自动化
上面的问题可以通过ssh直接远程执行命令来解决,但是需要写一些shell脚本, 有没有更简单更高效的方法呢?有,那就是使用版本版本管理工具的hook!