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 包裝下,來實現自動切換代理,有機會嘗試下。