局域网内创建git服务器的简单方法
当资源有限,但是项目同时需要几个人协同开发,我们就需要配置一个简单的局域网内的git服务器,方便协同开发。
首先我们新建远端的git目录,目录名和本地仓库名一致,并且在目录下运行:
git init --bare
一个空的git仓库就建立好了。然后我们需要把本地的仓库和远端的关联起来。具体做法是,在本地git仓库的目录下执行:
git remote add origin ssh://用户名@ip/仓库路径
比如:git remote add origin ssh://android@1921683172/home/android/projects/gitserver/demoproject/。完成后,本地的提交,就可以push到远端啦。比如:
git push origin master
就可以把本地的master推送到远端。协同开发的同事可以通过如下命令获取远端的仓库
git clone ssh://android@1921683172/home/android/projects/gitserver/demoproject/
是不是很简单呢
ps:实际使用过程中发现了一个问题,即本机的ip地址不是静态的。如何解决这个问题呢?可以在每次ip改变以后,重置仓库的origin url:
git remote set-url origin {url}
Git是用来管理文件版本的软件,使用它之前需要先创建仓库。那么在Windows系统中如何创建Git仓库呢?下面我给大家分享一下。
工具/材料Git Bash
首先点击Windows的开始菜单,在弹出的界面中选择Git Bash选项,如下图所示
接下来进入到Git的命令行界面中我们用pwd命令先查看一下当前的路径,如下u图所示
接着用cd命令进入到要建仓库的磁盘,注意不要在C盘建立仓库,如下图所示
然后我们在磁盘下面用mkdir命令创建一个仓库文件夹,如下图所示
接下来我们进入仓库文件夹,通过git init命令对仓库进行初始化,如下图所示
然后我们打开仓库文件夹,这时你会看到文件夹下面多了一个git文件夹,这就代表此文件夹是git仓库文件夹,如下图所示
接着我们在Git仓库文件夹下面建立一个txt文本文件,并在文件中写入一些内容,如下图所示
最后我们回到Git Bash命令行,运用git add 和git commit命令对文件进行添加并提交即可,如下图所示
首先需要装好CentOS系统,作为测试,你可以选择装在虚拟机上,这样比较方便。这步默认你会,就不讲了。
有了CentOS,那么如何搭建Git服务器呢?
1、首先需要安装Git,可以使用yum源在线安装:
[root@localhost Desktop]# yum install -y git
2、创建一个git用户,用来运行git服务
# adduser git
3、初始化git仓库:这里我们选择/data/git/learngitgit来作为我们的git仓库
[root@localhost git]# git init --bare learngitgit
Initialized empty Git repository in /data/git/learngitgit/
执行以上命令,会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以git结尾。然后,把owner改为git:
[root@localhost git]# chown git:git learngitgit
4、在这里,Git服务器就已经搭得差不多了。下面我们在客户端clone一下远程仓库
Zhu@XXX /E/testgit/834
$ git clone git@192168834:/data/git/learngitgit
Cloning into 'learngit'
The authenticity of host '192168834 (192168834)' can't be established
RSA key fingerprint is 2b:55:45:e7:4c:29:cc:05:33:78:03:bd:a8:cd:08:9d
Are you sure you want to continue connecting (yes/no) yes
Warning: Permanently added '192168834' (RSA) to the list of known hosts
git@192168834's password:
这里两点需要注意:第一,当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:
The authenticity of host 'githubcom (xxxxxxxx)' can't be established
RSA key fingerprint is xxxxxxxxxx
Are you sure you want to continue connecting (yes/no)
这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。
Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:
Warning: Permanently added 'githubcom' (RSA) to the list of known hosts
这个警告只会出现一次,后面的操作就不会有任何警告了。
如果你实在担心有人冒充GitHub服务器,输入yes前可以对照GitHub的RSA Key的指纹信息是否与SSH连接给出的一致。
第二,这里提示你输入密码才能clone,当然如果你知道密码,可以键入密码来进行clone,但是更为常见的方式,是利用SSH的公钥来完成验证。
5、创建SSH Key
首先在用户主目录下,看看有没有ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsapub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@examplecom"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到ssh目录,里面有id_rsa和id_rsapub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsapub是公钥,可以放心地告诉任何人。
6、Git服务器打开RSA认证
然后就可以去Git服务器上添加你的公钥用来验证你的信息了。在Git服务器上首先需要将/etc/ssh/sshd_config中将RSA认证打开,即:
1RSAAuthentication yes
2PubkeyAuthentication yes
3AuthorizedKeysFile ssh/authorized_keys
这里我们可以看到公钥存放在ssh/authorized_keys文件中。所以我们在/home/git下创建ssh目录,然后创建authorized_keys文件,并将刚生成的公钥导入进去。
然后再次clone的时候,或者是之后push的时候,就不需要再输入密码了:
Zhu@XXX/E/testgit/834
$ git clone git@192168834:/data/git/learngitgit
Cloning into 'learngit'
warning: You appear to have cloned an empty repository
Checking connectivity done
7、禁用git用户的shell登陆
出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/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 for
Windows,采用默认安装,安装完成后就可以在本地使用Git了。
但要将内容放到Github上,必须先在Github网站上注册个账户,然后在本机使用Git创建SSH Key。操作如下:
在Git Bash上输入命令:
ssh-keygen -C "username@emailcom" -t rsa
Note: “username@emailcom”需要更换成你在Github上注册的Email地址或者是Username
这样会在用户目录(C:\Users\用户名)下产生一个ssh文件夹,里面为对应的SSH
Keys,其中id_rsapub是Github需要的SSH公钥文件。
到c:\Users\用户名\ssh\目录找到id_rsapub(可能位置不一定对,但是确认是以pub结尾的文件),并用记事本打开复制全部内容。
Note:建议私钥公钥的名称最好写成"id_rsa",这样连接Github的时候会找这个文件,如果文件名已定,之后改名也行。
在github网站选择“Account Settings”>>“SSH Public Keys”>>“Add another
public key”,将刚才复制的内容粘贴到key文本框内。
这样就可以直接使用Git和GitHub了。
Note:建议在Git Bash中输入“ssh -v git@githubcom”测试能够正常连接github
安装Ruby环境
下载RubyInstaller和DevKit。
因为Octopress需要的Ruby版本为192,所以选rubyinstaller-192-p290exe,DevKit-tdm-32-452-20111229-1559-sfxexe。
先安装RubyInstaller,然后解压缩DevKit(路径中不能有中文)。
在“Start Command Prompt with Ruby”命令行中进入DevKit解压缩的目录,然后运行以下命令:
ruby dkrb init
ruby dkrb install
gem install rdiscount --platform=ruby
如果安装成功,就可以使用一些Ruby的工具了,也为后面搭建博客提供了基础环境。
安装Octopress
先通过Git从Github上克隆一份Octopress(在Git Bash上输入命令)
git clone git://githubcom/imathis/octopressgit octopress
然后安装一些依赖的工具(后面都是在Start Command Prompt with Ruby中输入)
cd octopress
ruby --version # Should report Ruby 192
gem install bundler
bundle install
安装Octopress默认的Theme
rake install
配置Octopress
将octopress的文件夹下的_configyml的编码改成UTF-8:
保存(或另存为)时选择编码格式为UTF-8
修改_configyml,批改url、title、subtitle、author等等。
到Ruby的安装目次\lib\ruby\gems\191\gems\jekyll-0112\lib\jekyll\找到convertiblerb这个文件,批改selfcontent
= Fileread(Filejoin(base, name))为selfcontent = Fileread(Filejoin(base,
name), :encoding => "utf-8")。
写博文
最简单的方式:复制octopress\source\_posts下某个文件,例如2012-07-30-the-first-postmarkdown,修改文件名和文件中的内容
或者,命令行中输入rake
new_post["title"],会创建一个新的Post,新文件在source/_post下,文件名如下面的格式:2012-07-31-titlemarkdown。该文件可以直接打开修改。
写文章时,可以使用Markdown和Octopress
Plugins等工具对内容进行格式排版。
预览效果
在修改设置或者写完文章后,想看看具体效果,可以通过如下命令来完成:
rake generate
rake preview
将博客部署到Github上
在预览的效果符合自己的预期后,就可以通过如下命令将内容部署到Github上了。
如果是第一次部署,需要在Github上创建一个usernamegithubcom的repository
在github网站选择“Create a New Repo”,如图
填写对应的内容即可
note:Repository
name填写usernamegithubcom,username一定要和github的username一致,建好的博客代表的是你这个github账户的主页即page
配置octopress与github的连接:
进入Octopress目录:
rake setup_github_pages
按照提示填入你的github项目网址,比如:
git@githubcom:Username/yournamegithubcomgit
note:可以按照上面的修改,也可以在github的项目页中找地址
分发到github上:
rake deploy
第一次运行时,会询问是否建立对github的授权,输入:yes。然后将站点更新的内容推送到github上。
补充一点:
最后的但并不是最重要的,我们需要将修改的日志同步到github上,因此下面的3个命令也是必须的。
git status
git add
git commit -m 'your message'
git push origin source
访问http:// ip地址
设置密码,然后通过 root + password 登录,当然也可以自己新建用户。
之后,将要访问此GitLab的服务器上的公钥添加进来就可以进行愉快的玩耍了 (Linux 系统一般在 /root/ssh 目录下,Windows一般在 C:\Users\用户名ssh 目录下)
当你完成以上操作之后,你会发现你仓库中的SSH和HTTP地址是下图这样的,所以我们要对GitLab进行IP显示的配置及端口配置。
修改如下项
修改 gitlabrb
当你完成以上配置后,还是不能通过 http:// ip location : prot 来访问你的GitLab仓库。
修改GitLab ngnix 监听端口
完成以上设置之后,就可以通过 IP + PORT 来访问你的GitLab库了,同时仓库的HTTP地址显示也正常
修改SSH端口首先要修改服务器的SSH端口,这会影响到 Xshell 对服务器的连接。
完成以上操作之后,一切就都正常了
第一,下载并安装git
目前windows版本的git有几种实现,但我们选择msysgit发行版,这是目前做得兼容性最好的。
使用默认配置安装Git。这个不用多说,一路Next就可以,如果对各种选项不熟悉,建议使用默认配置,没问题的。
第二,创建github账号
什么是Git和GitHub
Git —The stupid content tracker, 傻瓜内容跟踪器,是一个由Linux内核开发者Linus为了更好地管理Linux内核开发而创立的分布式版本控制软件。
GitHub — 学生做版本控制最讨厌的就是找服务器,配置太麻烦了。GitHub这个网站为每个用户提供服务器托管其Git代码库,免费空间为300M。注册GitHub后你就会有03G的免费空间,不过只能创建公开项目。
为什么不选CVS或SVN
Git提交/克隆/pull/push的速度更快
Git的绝大多数操作都可以在本地完成,不需要频繁连接服务器。
注册GitHub账号
GitHub网址在 这里
点击上方导航条的Signup and Pricing即可进入注册界面, 选择注册免费账户
GitHub选择的默认通信方式是SSH,所以要先在Git里面生成SHH Key,打开Git Bash在其中输入如下命令:
ssh-keygen -t rsa -C "3sdfsf80@xinlangcom"
之后会让你选择是否对存放SSH Key的文件夹进行加密,一般都不需要的。一路回车,就OK了。
在c盘,当前用户文件夹下,有个ssh 文件夹,在里边 找到 id_rsapub文件,用记事本打开,复制其中的全部内容。
登陆你的GitHub账户,依次点击Account Settings
>
SSH Public Keys
>
Add another public key,把id_rsapub中的内容拷贝进去 。
至此,基本的设置已经完成了。
成了。
测试你的Git
经过上述配置,你的Gti应该可以通过SSH连接GitHub服务器了,让我们来测试下,输入如下命令:
会给你这样的提示:
输入yes,会显示:
到这里,说明你的SSH运转良好。
如果提示你的密钥不正确,那么你需要重新确认上一步的操作是否完整无误。
第三,建立本地git仓库
首先,git要求使用者必须提供自己的身份标识,为此我们需要在git bash中执行以下命令:
git config --global username 'aaTessst'
git config --global useremail fsc@sinacom
其次,选择git仓库目录
我们假设将git仓库目录放在D盘的OPENSource目录下,可以通过在git bash中执行以下命令完成:
cd /d
mkdir OPENSource
注:git bash支持大多linux bash终端命令,你可以自己尝试更多终端操作。
最后,建立项目并初始化git仓库
我们的第一个项目是一个使用Python语言将XML文件转换成Python字典,通过执行以下命令完成此步骤:
mkdir Python-XML2Dict
cd Python-XML2Dict
git init
执行此操作后,git将在Python-XML2Dict目录下创建一个隐藏目录(git),这个目录就是git用来管理软件版本的仓库。
第四,使用git管理项目
此步 和 在linux 上 使用 git 的 方法一样,具体参考 我的 其他 博文!
第五,将项目提交到github管理,gitpush
如果 第二步 测试无错,那么 经过 以下两步 就可以将本地的文件提交到github仓库了。
1、登录GitHub后,你可以在右上边靠中那里找到一个按钮“creat a New Repository”,点击过后,填入项目名称、说明等 过后就可以创建了,然后会出现一个提示页面,记下类似 git@githubcom:XXX/XXXgit 的地址,这个就是你这个项目的地址了。
2、
1 git remote add origin git@githubcom:XXX/XXXgit
2 git push -u origin master //把本地 master 分支 推送到 服务器的master分支上,如果服务器没有此分支,就 新建 此分支。这也是 在服务器上新建分支的一种方法
这个git@githubcom:XXX/XXXgit就是上面创建项目是生成的地址。现在打开你的项目网址,你就可以发现你的代码已经展示出来了。
第六,直接 用 git pull 将项目 从 github 上 同步 下来
有两种方法:
1、当git clone之后,直接git pull它会自动匹配一个正确的remote url
是因为在config文件中配置了以下内容:
1 [branch "master"]
2 remote = origin
3 merge = refs/heads/master
表明:
1git处于master这个branch下时,默认的remote就是origin;
2当在master这个brach下,使用指定remote和merge的git pull时,使用默认的remote和merge。
2、但是对于自己建的项目,并没有这块内容,需要自己配置。
1 git remote add -f origin login@gitsvgnuorg:/srv/git/projectgit //若是 执行过 第五步,那么 这一句 就 不用了
2 git config branchmasterremote origin //这一步 设置: 把 master 分支上 的 默认服务器地址 设为 origin指向的地址
3 git config branchmastermerge refs/heads/master //这一步 设置:如果当前分支是 master 分支,那么 git pull之后,直接 把 “从 origin 下载 下来的 code合并到 master分支上“
或者加上--global选项,对于全部项目都使用该配置。
建议:用第二种 方法,因为 如果 是 git clone的 项目,当 执行 git push 时,因为 在 git config里 url 是 只读方式
[remote "origin"]
fetch = +refs/heads/:refs/remotes/origin/
url = git://githubcom/xxx/xxxgit
//git@githubcom:XXX/XXXgit 这才是 读写方式
---------------------------------
如果提交了敏感信息,比如代码中设置的自己的密码什么的忘删除就上传上去了怎么办?
有两个方法:
1、重新修改本地代码,然后提交到服务器(覆盖),
2、直接登录 github 删除之前的项目。删除项目需要在GitHub网站上右上方找到admin按钮,进去后右边最下面有个删除的按钮,这样就可以删除了。
--------------------------
若是一个项目就托管在 GitHub 上。你可以把它的 URL 分享给每位对此项目感兴趣的人。。而在项目页面的摘要部分,你会发现有两个 Git URL 地址,见 右图:
右图的 摘要中的公共 URL 和私有 URL
Public Clone URL 是一个公开的,只读的 Git URL,任何人都可以通过它克隆该项目。可以随意散播这个 URL,比如发布到个人网站之类的地方等等。
Your Clone URL 是一个基于 SSH 协议的可读可写 URL,只有使用与上传的 SSH 公钥对应的密钥来连接时,才能通过它进行读写操作。其他用户访问该项目页面时只能看到之前那个公共的 URL,看不到这个私有的 URL。
1、下载Git,从官方网站下载Git并安装,安装以后在windows 目录点右键快捷菜单会有Git相应的功能
2、进入Git Gui,配置git的用户名和邮箱
3、初始化一个Git代码库,创建一个文件夹并进入,点击右键"Git init here",然后会创建一个代码仓库
4、添加文件,任何文件都可以,git会记录文件操作的状态。 进入"Git Gui"
5、选择未缓存的改动列表,添加注释并提交改动
6、把提交的改动上传到服务器,比如github。
0条评论