1.Git客户端部署使用-生成ssh密钥-平台windows
2.解决git clone网络超时
3.[Git Misc] Proxy 和 Authentication 踩坑
4.CentOS 6.3下使用Gitosis安装搭建Git Server教程
5.git基本操作和切换分支加合并
6.git拉去代码报错"Failed to connect to 127.0.0.1 port 31181: Connection refused"
Git客户端部署使用-生成ssh密钥-平台windows
为了实现Git客户端的部署,首先需要安装Git、TortoiseGit和TortoiseGit-LanguagePack。这些软件的安装遵循官方指南,确保安装顺序正确,即首先安装Git-2..2.2--bit.exe,github eth源码然后安装TortoiseGit-2..0.1-bit.msi,最后安装TortoiseGit-LanguagePack-2..0.0-bit-zh_CN.msi。安装完成后,桌面上将出现Git GUI Here、Git Bash Here、Git克隆、Git在这里创建版本库、TortoiseGit等选项。
使用Git Bash生成SSH密钥并添加到服务器的过程如下:在桌面右击选择"Git Bash Here",打开命令窗口。java native方法源码设置用户名和邮箱,输入命令:
git config --global user.name "用户名"
git config --global user.email "用户名@邮箱"
确保替换用户名和邮箱为实际信息,用户名用于Git服务器,邮箱则为邮箱地址。操作后,会在C:\Users\账号目录下生成.gitconfig配置文件,保存账号和邮箱信息。
生成和查看公钥和私钥,执行命令:
ssh-keygen -t rsa -C "邮箱地址"
此命令会在C:\Users\用户名\.ssh目录下生成SSH密钥。要查看公钥,可以通过notepad++或直接在命令窗口使用命令:
cat ~/.ssh/id_rsa.pub
添加公钥至服务器:首先登录Git服务器,确保账户具有管理权限,然后通过用户中心的SSH Keys页面添加公钥。完成这些步骤后,服务器配置已完成。php源码加密解密
使用Git命令下载项目:登录Gitblit账户,切换到版本库,复制项目的SSH URL。在Git命令窗口输入:
git clone 要下载的项目URL
若遇到新SSH客户端不支持ssh-ras算法的情况,需要在本地配置文件C:\Users\用户名\ .ssh\config中添加以下内容:
ssh-rsa
TortoiseGit配置与生成SSH密钥涉及使用putty key generator工具。此工具生成的密钥适用于git,但不适用于TortoiseGit。为解决此问题,需使用putty key generator生成rsa密钥,并转换为ppk格式的密钥。具体步骤包括使用putty key generator生成公钥,设置访问密码(可选),将公钥添加到服务器,以及在本地使用Pageant管理密钥。
TortoiseGit配置涉及右击空白处选择Tortoisegit设置,php网络硬盘源码输入生成密钥时使用的名称和邮箱。下载Gitblit上的文件时,登录账户,切换到版本库,单击项目,复制SSH URL,然后在本地目录右击选择Git克隆,粘贴URL并完成下载。使用TortoiseGit上传项目时,右击项目选择Git提交,设置提交信息并选择要提交的文档,提交后记得推送至Gitblit服务器。
解决git clone网络超时
当国内访问Github Raw资源变得愈发困难,可能导致clone操作出现超时问题。针对这种情况,旅游攻略网站源码有几种简便的解决策略。
首先,你可以利用第三方代理服务来加速访问。例如,网站提供了对github资源的代理支持。以下载stable-diffusion-webui为例,只需通过该代理访问,就能有效提升下载速度。
然而,如果想长期解决这个问题,更推荐的方法是直接在本地进行设置。具体步骤是编辑你的~/.gitconfig文件。在该配置文件中,添加如下内容,以便git在克隆时自动使用代理:
[.pool.ntp.org
三.安装apache
传送门:/tv/gitosis.git
# cd gitosis
# python setup.py install
3.为gitosis创建系统用户
复制代码
代码如下:
# useradd -m git
# passwd git
4. 运行gitosis
(1).将管理员生成的公钥上传或拷贝到服务器上。这里的公钥需要在git服务器管理员下使用ssh-keygen命令来创建
复制代码
代码如下:
# su - git
保证web页面有权限显示该仓库内容
复制代码
代码如下:
# chmod -R /home/git
# ssh-keygen -t rsa
# cp ~/.ssh/id_rsa.pub /tmp
(2).初始化gitosis
进入到拷贝过来的id_rsa.pub所在目录
复制代码
代码如下:
# cd /tmp
# gitosis-init id_rsa.pub
此时,会在/home/git目录下生成gitosis仓库和配置目录
复制代码
代码如下:
# cd /home/git
# ll
----------------------------------------------------------------
drwxr-xr-x 2 git git Aug : gitosis
drwxr-xr-x 4 git git Aug : repositories
---------------------------------------------------------------
(3).切换回当前(root)用户
复制代码
代码如下:
# exit
(4).配置权限
如果想要别人能够clone gitosis-admin.git,需要执行以下操作:
复制代码
代码如下:
# chmod /home/git/repositories/gitosis-admin.git/hooks/post-update
至此,gitosis的安装工作已完成,其相关配置可以有管理员来操作,然后再提交到服务器上.
(5)现在可以试一下用初始化 Gitosis 的公钥的拥有者身份 SSH 登录服务器,应该会看到类似下面这样:
复制代码
代码如下:
# su - git
$ ssh git@.0.0.1
------------------------------------------------
PTY allocation request failed on channel 0
ERROR:gitosis.serve.main:Need SSH_ORIGINAL_COMMAND in environment.
Connection to gitserver closed.
------------------------------------------------
说明 Gitosis 认出了该用户的身份,但由于没有运行任何 Git 命令,所以它切断了连接。那么,现在运行一个实际的 Git 命令 — 克隆 Gitosis 的控制仓库:
在你本地计算机上克隆git仓库
复制代码
代码如下:
# cd /tmp
# git clone git@gitserver:gitosis-admin.git
这会得到一个名为 gitosis-admin 的工作目录,主要由两部分组成:
红色为git仓库配置,蓝色为实际仓库保存的文件
复制代码
代码如下:
# cd gitosis-admin
# ll -a
----------------------------------------------------------
total
drwxr-xr-x 4 git git Aug : .
drwxr-xr-x 4 git git Aug : ..
drwxr-xr-x 8 git git Aug : .git
-rwxr-xr-x 1 git git Aug : gitosis.conf
drwxr-xr-x 2 git git Aug : keydir
-----------------------------------------------------------
以上操作相当于,系统git用户初始化并成为gitosis管理员,且利用其管理员权限将gitosis-admin仓库clone到本地.
5.添加本地用户john和仓库test到gitosis,并和管理员git合作管理gitosis
1. 用户john添加并发送id_rsa.pub给git
复制代码
代码如下:
# su -
# useradd john passwd john
# su - john
# ssh-keygen -t rsa
-----------------------------------------------------------
Generating public/private rsa key pair.
Enter file in which to save the key (/home/john/.ssh/id_rsa):
Created directory '/home/john/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/john/.ssh/id_rsa.
Your public key has been saved in /home/john/.ssh/id_rsa.pub.
-----------------------------------------------------------
# cp /home/john/.ssh/id_rsa.pub /tmp
2. gitosis管理员git分配john权限
复制代码
代码如下:
# su - git
# mkdir projects
# cd ~/projects
# git clone git@node2.example.com:gitosis-admin
# cd gitosis-admin
# cat gitosis.conf
------------------------------------------------
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = git@node2.example.com
------------------------------------------------
# ls keydir/
-------------------------
git@node2.example.com.pub
-------------------------
# cp /tmp/id_rsa.pub keydir/john.pub
# vi gitosis.conf
————————————————————————————————————
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = git@node2.example.com
[group test]
writable = test
members = git@node2.example.com john
————————————————————————————————————
# git add .
# git commit -am "add member john and project foo"
# git push
3. 用户git添加项目test
复制代码
代码如下:
# su - git
# cd ~/projects
# mkdir test
# cd test
# git init
# echo "Hello World." hello.txt
# git add hello.txt
# git commit -am 'first commit'
# git remote add origin git@node2.example.com:test.git
# git push origin master
4. 用户 john clone test并修改hello.txt
复制代码
代码如下:
# su - john
# git clone git@node2.example.com:test.git
# cd test
# date hello.txt
# git commit -am 'add time to hello.txt' git push
整个过程分为:
1.通过修改gitosis-admin管理gitosis用户权限,需要clone到本地,然后修改配置文件,最后add push将结果推送到远程实现权限修改.
2.添加系统用户,生成该用户公钥,并将其复制到keydir下,实现该用户有权限进行git等相关操作.
3.登陆该用户账户进行git相关操作,修改完后commit,push到中服务器即可完成仓库权限配置.
七.安装gitweb
1.首先我们需要Git的源码,其中带有GitWeb,并能生成定制的CGI脚本:
复制代码
代码如下:
# git clone git://git.kernel.org/pub/scm/git/git.git
# cd git/
# make GITWEB_PROJECTROOT="/home/git/repositories" prefix=/usr gitweb
# cp -rf gitweb /usr/local/apache2/htdocs/
注: 通过指定 GITWEB_PROJECTROOT 变量告诉编译命令 Git 仓库的位置
2.设置Apache以CGI方式运行该脚本,并添加一个VirtualHost配置:
(1).加载apache的vhost配置文件
复制代码
代码如下:
# vi /usr/local/apache2/conf/
DocumentRoot /usr/local/apache2/htdocs/gitweb
Directory /usr/local/apache2/htdocs/gitweb
Options +ExecCGI
AllowOverride All
order allow,deny
Allow from all
AddHandler cgi-script cgi pl
DirectoryIndex gitweb.cgi
/Directory
/VirtualHost
——————————————————————————————————————————
(4).安装Time/HiRes.pm perl模块
首次打开web页面报Can't locate Time/HiRes.pm in @INC ….错误
解决方法:
复制代码
代码如下:
# yum install perl-devel perl-CPAN -y
# perl -MCPAN -e shell
cpan[2] install Time::HiRes
cpan[3] exit
(5).重启apache服务
复制代码
代码如下:
# /usr/local/apache2/bin/apachectl restart
(6).修改本机HOST,并打开gitweb页面
大功告成....
git基本操作和切换分支加合并
在使用Git进行基本操作和分支管理时,创建分支并推送至GitHub是一个关键步骤。许多人可能会误以为本地的checkout操作就足够了,但实际上,新创建的分支需要通过git push命令推送至远程仓库才能在GitHub上显示。以下是详细的命令和操作流程:首先,初始化新项目:`git init`
如果项目是从GitHub克隆,使用`git clone`命令,遇到错误时,可能需要执行特定的.0.0.1命令进行解决
创建新分支并切换:`git checkout -b dev`
查看本地分支:`git branch -a`(非必须)
添加文件:`git add -A`(注意,与`.git`文件关联的错误需要先删除相关文件)
提交更改:`git commit -m 'dev'`
检查状态和远程地址:`git status` 和 `git remote -v`
添加远程仓库地址:`git remote add origin github.com/地址`
推送分支:`git push -u origin master`(初次推送时加上-u参数)
合并分支:切换到目标分支(如master)后,用`git merge branch_name`,可能需要`--allow-unrelated-histories`选项处理不同历史的合并
解决合并冲突:使用`git ls-files -s`检查冲突,编辑冲突文件并解决冲突标记(如`<<<<<<< HEAD`等)
最后,提交并推送合并结果:`git add -A`, `git commit -m 'merge commit'`, 然后`git push origin master`
记住,GitLab和GitHub的命令基本相同,只是界面风格有差异。如果遇到网络问题,如代理设置错误,可以清除代理配置来解决。git拉去代码报错"Failed to connect to .0.0.1 port : Connection refused"
在使用git clone克隆远程仓库代码时,如遇到“fatal: unable to access ' example.git/': Failed to connect to .0.0.1 port : Connection refused”报错,通常与git代理配置相关。下面将详细解析原因及解决方法。
报错详情
报错信息指出无法访问example.git,具体原因是在尝试连接到.0.0.1的端口时,接收到“Connection refused”的错误。这通常发生在配置了git代理,但未正确关闭代理时。
报错原因
在Windows系统中,使用代理时可能会导致git客户端配置出现问题。即便在不需要代理时,如果未及时清除代理配置,git仍会保留旧的代理设置,导致在尝试访问仓库时出现报错。这是问题的根本原因。
解决方法
解决此类问题的关键在于取消代理配置。首先,确保在不使用代理时,正确地关闭了代理设置。接下来,通过执行特定命令来清除git的代理配置。
取消代理
在git bash窗口中,通过以下命令查看当前的代理设置:
bash
git config --global mit用于暂存区域提交到本地库。
git diff报告当前文件和INDEX区之间的差异,git log查看提交历史。
回退操作包括git checkout和git reset,可撤销本地改动代码或暂存区的修改。
操作远程仓库包括git remote,用于查看和添加远程仓库,git fetch,git clone,git pull,git push等命令。
其他常用命令包括git stash,git branch,git merge等。