git代理
⑴ 如何为 Git 设置代理
对于所有的协议全部使用 SSH 隧道进行代理
GIT 协议的配置
建立 /path/to/socks5proxywrapper 文件,使用 https://bitbucket.org/gotoh/connect 工具进行代理的转换,各发行版一般打包为 proxy-connect 或者 connect-proxy。
#!/bin/sh
connect -S 127.0.0.1:7070 "$@"
配置 git
[core]
gitproxy = /path/to/socks5proxywrapper
或者
export GIT_PROXY_COMMAND="/path/to/socks5proxywrapper"
SSH 协议的配置
建立 /path/to/soks5proxyssh 文件
#!/bin/sh
ssh -o ProxyCommand="/path/to/socks5proxywrapper %h %p" "$@"
配置 git 使用该 wrapper
export GIT_SSH="/path/to/socks5proxyssh“
当然也可以直接配置 ~/.ssh/config 的 ProxyCommand
HTTP 协议的配置
[http]
#这里是因为 Git 使用 libcurl 提供 http 支持
proxy = socks5://127.0.0.1:7070
所有协议全部使用 http 代理
在前一部分的基础上, /path/to/socks5proxywrapper 文件改为
#!/bin/sh
connect -H 192.168.1.100:8080 "$@"
HTTP 协议配置
[http]
proxy = http://192.168.1.100:8080
针对域名启用代理
gitproxy 参数提供 * for * 结构,具体看 man git-config 的 core.gitproxy 部分。
⑵ 如何利用代理实现外网访问在内网搭的Git仓库
当前使用的Git是哪个版本,可以通过如下的命令可以知道:$git--versiongitversion1.9.1在开始Git之旅之前,我们需要设置一下Git的配置变量,这是一次性的工作。即这些设置会在全局文件(用户主目录下的.gitconfig)或系统文件(如/etc/gitconfig)中做永久的记录。1、告诉Git当前用户的姓名和邮件地址,配置的用户名和邮件地址将在版本库提交时用到。命令如下:$gitconfig--globaluser.namefuhd$gitconfig--globaluser.email001fhd@163.com注:该命令会把user.name,user.email信息写入到用户主目录下的.gitconfig文件中。2、设置一些Git别名,以便可以使用更为简洁的子命令。例如:输入gitci即相当于gitcommit,输入gitst即相当于gitstatus。如果拥有系统管理员权限(例如通过执行sudo命令获取管理员权限),希望注册的命令别名能够被所有用户使用,可以执行如下命令:$sudogitconfig--systemalias.ststatus$sudogitconfig--systemalias.cicommit$sudogitconfig--systemalias.cocheckout$sudogitconfig--systemalias.brbranch注:这些命令会把信息写入/etc/gitconfig文件中。另外,也可以运行下面的命令,只在本用户的全局配置中添加Git命令别名:$gitconfig--globalalias.ststatus$gitconfig--globalalias.cicommit$gitconfig--globalalias.cocheckout$gitconfig--globalalias.brbranch注:该命令会把信息写入到用户主目录下的.gitconfig文件中。3、在Git命令输出中开启颜色显示。$gitconfig--globalcolor.uitrue注:该命令会把信息写入到用户主目录下的.gitconfig文件中。Git的所有操作,包括创建版本库等管理操作用git一个命令即可完成,不像其他版本控制系统(如Subversion),与管理相关的操作要使用另外的命令(如svnadmin)。创建Git版本库,可以直接进入到工作目录中,通过执行gitinit命令完成版本库的初始化。下面就从一个空目录开始初始化版本库,为了方便说明,我们使用名为/path/to/my/workspace的目录作为个人的共作区根目录,可以在磁盘中创建目录并设置正确的权限。首先,建立一个新的工作目录,进入该目录后,执行gitinit创建版本库:$cd/path/to/my/workspace$mkdirdemo$cddemo$gitinit初始化空的Git版本库于/path/to/my/workspace/demo/.git/实际上,如果Git的版本是1.6.5或更新的版本,可以在gitinit命令的后面直接输入目录名称,自动完成目录的创建:$cd/path/to/my/workspace$gitinitdemo初始化空的Git版本库于/path/to/my/workspace/demo/.git/从上面版本库初始化后的输出中可以看到,gitinit命令在工作区创建了隐藏目录.git。这个隐藏的.git目录就是Git版本库(又叫仓库,repository)。.git版本库所在的目录为/path/to/my/workspace/demo,它被称为工作区,目前工作区除了包含一个隐藏的.git版本库目录外空无一物。下面为工作区中加点料:在工作区中创建一个文件welcome.txt,内容就是一行“Hello.”。$echo"Hello.">welcome.txt为了将这个新建立的文件添加到版本库,需要执行下面的命令:$gitaddwelcome.txt注意,到这里还没有完。Git和大部分其他版本控制系统一样,都需要再执行一次提交操作,对于Git来说就是执行gitcommit命令完成提交。在提交过程中需要输入提交说明,这个要求对于Git来说是强制性的,不像其他很多版本控制系统(如CVS和Subversion)那样接受空白的提交说明。当Git提交时,如果不在命令行提供提交说明(使用-m参数),Git会自动打开一个编辑器,要求你在其中输入提交说明,输入完毕后保存并退出。下面进行提交,为了说明方便,使用-m参数直接给出了提交说明。$gitci-m"initialized."[master(根提交)57ceaad]initlalized.1filechanged,1insertion(+)createmode100644welcome.txt从上面的命令及输出中可以看出:1、命令gitci实际上相当于gitcommit,这是因为之前为Git设置了命令别名。2、通过-m参数设置提交说明为:"initialized."。3、从命令输出的第一行可以看出,此次提交是提交在名为master的分支上,且是该分支的第一个提交(根提交),提交ID为57ceaad。4、从命令输出的第二行可以看出,此次提交修改了一个文件,包含一行的插入。5、从命令输出的第三行可以看出,此次提交创建了新文件welcome.txt。
⑶ 网络连接使用了代理idea的git怎么解决
先在Git@OSC上创建仓库拿到Git@OSC仓库的HTTP连接mit等操作了最后可以在项目中Git——回Repositroy——PUSH提交到Git@OSC中了(第一次答提示输入账号密码)就是这么简单有木有.
⑷ 如何为 Git 设置代理
对于所有的协议全部使用 SSH 隧道进行代理
GIT 协议的配置
建立 /path/to/socks5proxywrapper 文件,使用 https://bitbucket.org/gotoh/connect 工具进行代理的转换,各发行版一般打包为 proxy-connect 或者 connect-proxy。
#!/bin/sh
connect -S 127.0.0.1:7070 "$@"
配置 git
[core]
gitproxy = /path/to/socks5proxywrapper
或者
export GIT_PROXY_COMMAND="/path/to/socks5proxywrapper"
SSH 协议的配置
建立 /path/to/soks5proxyssh 文件
#!/bin/sh
ssh -o ProxyCommand="/path/to/socks5proxywrapper %h %p" "$@"
配置 git 使用该 wrapper
export GIT_SSH="/path/to/socks5proxyssh“
当然也可以直接配置 ~/.ssh/config 的 ProxyCommand
HTTP 协议的配置
[http]
#这里是因为 Git 使用 libcurl 提供 http 支持
proxy = socks5://127.0.0.1:7070
所有协议全部使用 http 代理
在前一部分的基础上, /path/to/socks5proxywrapper 文件改为
#!/bin/sh
connect -H 192.168.1.100:8080 "$@"
HTTP 协议配置
[http]
proxy = http://192.168.1.100:8080
针对域名启用代理
gitproxy 参数提供 * for * 结构,具体看 man git-config 的 core.gitproxy 部分。望采纳
⑸ 如何为 Git 设置代理
GIT 协议的配置
建立 /path/to/socks5proxywrapper 文件。
#!/bin/sh
connect -S 127.0.0.1:7070 "$@"
配置 git
gitproxy = /path/to/socks5proxywrapper
或者
export GIT_PROXY_COMMAND="/path/to/socks5proxywrapper"
SSH 协议的配置
建立 /path/to/soks5proxyssh 文件
#!/bin/sh
ssh -o ProxyCommand="/path/to/socks5proxywrapper %h %p" "$@"
配置 git 使用该 wrapper
export GIT_SSH="/path/to/socks5proxyssh“
当然也可以直接配置 ~/.ssh/config 的 ProxyCommand
HTTP 协议的配置
#这里是因为 Git 使用 libcurl 提供 http 支持
proxy = socks5://127.0.0.1:7070
所有协议全部使用 http 代理
在前一部分的基础上, /path/to/socks5proxywrapper 文件改为
#!/bin/sh
connect -H 192.168.1.100:8080 "$@"
HTTP 协议配置
proxy = http://192.168.1.100:8080
⑹ 如何为 Git 设置代理
你好, 建议参考如下
对于所有的协议全部使用 SSH 隧道进行代理
GIT 协议的配置
建立 /path/to/socks5proxywrapper 文件,使用 https://bitbucket.org/gotoh/connect 工具进行代理的转换,各发行版一般打包为 proxy-connect 或者 connect-proxy。
#!/bin/sh
connect -S 127.0.0.1:7070 "$@"
配置 git
[core]
gitproxy = /path/to/socks5proxywrapper
或者
export GIT_PROXY_COMMAND="/path/to/socks5proxywrapper"
SSH 协议的配置
建立 /path/to/soks5proxyssh 文件
#!/bin/sh
ssh -o ProxyCommand="/path/to/socks5proxywrapper %h %p" "$@"
配置 git 使用该 wrapper
export GIT_SSH="/path/to/socks5proxyssh“
当然也可以直接配置 ~/.ssh/config 的 ProxyCommand
HTTP 协议的配置
[http]
#这里是因为 Git 使用 libcurl 提供 http 支持
proxy = socks5://127.0.0.1:7070
所有协议全部使用 http 代理
在前一部分的基础上, /path/to/socks5proxywrapper 文件改为
#!/bin/sh
connect -H 192.168.1.100:8080 "$@"
HTTP 协议配置
[http]
proxy = http://192.168.1.100:8080
针对域名启用代理
gitproxy 参数提供 * for * 结构,具体看 man git-config 的 core.gitproxy 部分。
⑺ windows 下可以为 git 设置代理么
在windows使用git命令方法如下(以win7为例): 1、msysgit 是 Windows 版的 Git可以网络搜索Git下载。 2、安装完成后,开始菜单版里找到“权Git”->“Git Bash”打开Git。 3、注册用户信息:首先配置你的用户信息的Git命令。
⑻ 怎么配置 win10 下 git 走 socks5 代理
工具:win10系统电脑一台 步骤: 1、打开win10系统电脑,双击exe安装包,在弹出的安回全提示中点击“允答许”。安装向导的头两步都直接点击“下一步”/“Next”如图所示。 2、在选择组件的对话框中,按照下图进行勾选,然后点击“Next”。 3、在调整Path环境变量的页面,选择第二项“从Windows命令行使用git“,如下图所示,然后点击”Next“。这样选择可以省去自己设置环境变量的步骤,同时又不会污染目前的系统环境。 4、在配置行结束符的页面,选择第一个选项“取出文件时使用windows风格,提交文件时使用unix风格”,如图所示,然后点击“Next”。这个选项使得您在和其他人合作项目时不会遇到行结束符不兼容的问题。 5、在终端模拟器选择页面,选择第一个选项,然后点击“Next”。这样配置后git bash的终端比较易用。一直点“Next”。直到完成即可。
⑼ 如何让 Git 使用 HTTP 代理服务器
如果是 git clone http:// 或 git clone https:// 的话直接把代理服务器加到环境变量就可以了:
$ export http_proxy="http://username:[email protected]:3128/"
$ export https_proxy="http://username:[email protected]:3128/"
如果是 git clone git:// 的话麻烦一些(可能有的 git 源不提供 http/https 的方式),需要先安装 socat,然后创建一个叫做 gitproxy 的脚本并填上合适的服务器地址、端口号等,最后配置 git 使用 gitproxy 脚本:
$ sudo apt-get install socat
$ sudo vi /usr/bin/gitproxy
#!/bin/bash
PROXY=squid.vpsee.com
PROXYPORT=3128
PROXYAUTH=username:password
exec socat STDIO PROXY:$PROXY:$1:$2,proxyport=$PROXYPORT,proxyauth=$PROXYAUTH
$ sudo chmod +x /usr/bin/gitproxy
$ git config --global core.gitproxy gitproxy
⑽ git clone 太慢怎么办
Git 和 GitHub
的出现打开了开源世界的另一扇大门,版本控制变得更强大(也更复杂),项目的管理变得更加容易,项目的开发也变得更容易进行多人协作。GitHub
无疑是程序员的 Facebook
,在这里汇聚了无数世界顶级的项目以及顶级的程序员,你可以为你感兴趣的项目加星(Star),可以关注任何人(Follow)以及他们的项目
(Watch),而且更赞的是,你可以复制一份别人项目的副本(Fork),来进行自己的修改,如果你愿意的话,你还可以向项目的原作者发起请求
(Pull Request),将你做的修改合并到原项目中。这样无论你是什么人,来自不同的国家,拥有不同的技能,都可以对所有开源的项目作出贡献。
尽管上面描述的开源世界如此美好,但是在大天朝,在墙内,你却完全无法领略。因为当你访问 GitHub 时,或者使用 git clone 兴致勃勃的下载你感兴趣的项目时,巨慢的速度将彻底击毁你的信心,最终只好放弃表示玩不起。
强大的长城技术对 GitHub 网开一面,没有像 Google 或 Facebook 这样直接斩尽杀绝,但是对它做了严格的限速,这种折磨比直接毙了更痛苦( 有网友表示,有些地区速度很快,有些地区速度很慢,也有可能是和网络运营商有关 )。如上图所示, git clone 的下载速度从来没有超过 10KiB/s ,这也就意味着一个 100MiB 的项目,需要近三个小时才能下完,而且由于网络的不稳定性,下载过程中偶尔会出现断开连接的情况,由于 git clone 不支持断点续传,这让几个小时的下载时间白白浪费掉,只能重新开始。
这篇文章将介绍几种方法来快速从 GitHub 上下载代码。
一、git shallow clone
git clone 默认会下载项目的完整历史版本,如果你只关心最新版的代码,而不关心之前的历史信息,可以使用 git 的浅复制功能:
$ git clone --depth=1 https://github.com/bcit-ci/CodeIgniter.git
--depth=1 表示只下载最近一次的版本,使用浅复制可以大大减少下载的数据量,例如, CodeIgniter 项目完整下载有近 100MiB ,而使用浅复制只有 5MiB 多,这样即使在恶劣的网络环境下,也可以快速的获得代码。如果之后又想获取完整历史信息,可以使用下面的命令:
$ git fetch --unshallow
或者,如果你只是想下载最新的代码看看,你也可以直接从 GitHub 上下载打包好的 ZIP 文件,这比浅复制更快,因为它只包含了最新的代码文件,而且是经过 ZIP 压缩的。但是很显然,浅复制要更灵活一点。
二、GUI 工具 + 代理
如果很有幸你正在使用代理,懂得如何翻墙的话,那么访问 GitHub 对你来说应该不在话下。下载 GitHub
上项目的最简单的方法就是使用一款图形化界面(GUI)的 Git 工具,这样的工具现在比比皆是。使用 GUI
工具方便的地方在于,可以在设置中配置是否要使用代理,将你翻墙所使用的代理 IP 拿过来配置上就 OK 了,或者更直接的,将代理配置为系统代理。
三、git + http.proxy
如果你跟我一样,喜欢使用原生的 git 命令,喜欢在命令行下操作的那种感觉,那么也可以在命令行下直接配置 git 使用代理,当然前提一样是,你懂得如何翻墙。
$ git config --global http.proxy http://proxyuser:[email protected]:8080
$ git config --global https.proxy https://proxyuser:[email protected]:8080
使用上面的命令配置完之后,会在 ~/.gitconfig 文件中多出几行:
[http]
proxy = http://proxyuser:[email protected]:8080
[https]
proxy = https://proxyuser:[email protected]:8080
你也可以使用下面的命令检查配置是否生效:
$ git config --global --get http.proxy
$ git config --global --get https.proxy
另外,如果你想取消该设置,可以:
$ git config --global --unset http.proxy
$ git config --global --unset https.proxy
配置完成后,重新 clone 一遍,可以看到速度得到了极大的提升!
题外话:在命令行中如何使用代理?
要注意的是使用 git config --global 配置的代理只能供 git 程序使用,如果你希望让命令行中的其他命令也能自动使用代理,譬如 curl 和 wget 等,可以使用下面的方法:
$ export http_proxy=http://proxyuser:[email protected]:8080
$ export https_proxy=https://proxyuser:[email protected]:8080
这样配置完成后,所有命令行中的 HTTP 和 HTTPS 请求都会自动通过代理来访问了。如果要取消代理设置,可以:
$ unset http_proxy
$ unset https_proxy
还有一点要注意的是,使用 http_proxy 和 https_proxy 只对 HTTP 和 HTTPS 请求有效,所以当你 ping www.google.com 的时候如果 ping 不通的话,也就没什么大惊小怪的了。
题外话:如何使用 PAC 文件?
有时候我们会使用 git 访问不同的 git 仓库,譬如 GitHub,或者 Git@OSC, 或者你自建的 Git 服务器,但是只想访问 GitHub 的时候使用代理,访问其他的仓库不要使用代理。这时候我们似乎可以使用 PAC 来解决这个问题。 PAC (代理自动配置)正是用于浏览器来根据不同的 URL 自动采用不同的代理的一项技术,该文件包含一个 FindProxyForURL Javascript 函数,用于根据 URL 来返回不同的代理。
但是遗憾的是,目前 git 似乎还不支持 PAC 文件,但我们可以打开 PAC 文件找到代理的地址,然后通过上面的方法来配置或取消配置,只是有些繁琐。 也许可以写个脚本来解析 PAC 文件,并将 git 包装下,来实现自动切换代理,有机会尝试下。