git協議
① 如何查看git clone http協議
因為我們的復內部網路使用制了代理,所以在 安裝 OpenStack 基於 Web 的管理控制台 的時候有個小麻煩,我們的 http 代理伺服器無法通過 git 協議下載 openstack-dashboard 所需的代碼,也就是說可以 git clone https:// 這樣克隆代碼
② git http ssh哪個好
各有優缺點,總的來說,HTTP使用更簡便廣泛。
以下參考: (Git官方伺服器協議文檔)
Git 可以使用四種主要的協議來傳輸資料:本地協議(Local),HTTP 協議,SSH(Secure Shell)協議及 Git 協議。
HTTP 協議(智能(Smart) HTTP 協議)
Git 1.6.6 版本引入了一種新的、更智能的新版本HTTP協議,讓 Git 可以像通過 SSH 那樣智能的協商和傳輸數據。 新版本的 HTTP 協議一般被稱為「智能」 HTTP 協議,舊版本的一般被稱為「啞」 HTTP 協議。
「智能」 HTTP 協議的運行方式和 SSH 及 Git 協議類似,只是運行在標準的 HTTP/S 埠上並且可以使用各種 HTTP 驗證機制,這意味著使用起來會比 SSH 協議簡單的多,比如可以使用 HTTP 協議的用戶名/密碼的基礎授權,免去設置 SSH 公鑰。
智能 HTTP 協議或許已經是最流行的使用 Git 的方式了,它即支持像 git:// 協議一樣設置匿名服務,也可以像 SSH 協議一樣提供傳輸時的授權和加密。 而且只用一個 URL 就可以都做到,省去了為不同的需求設置不同的 URL。 如果你要推送到一個需要授權的伺服器上(一般來講都需要),伺服器會提示你輸入用戶名和密碼。 從伺服器獲取數據時也一樣。
事實上,類似 GitHub 的服務,你在網頁上看到的 URL (比如Github),和你在克隆、推送(如果你有許可權)時使用的是一樣的。
優點
不同的訪問方式只需要一個 URL 以及伺服器只在需要授權時提示輸入授權信息,這兩個簡便性讓終端用戶使用 Git 變得非常簡單。 相比 SSH 協議,可以使用用戶名/密碼授權是一個很大的優勢,這樣用戶就不必須在使用 Git 之前先在本地生成 SSH 密鑰對再把公鑰上傳到伺服器。 對非資深的使用者,或者系統上缺少 SSH 相關程序的使用者,HTTP 協議的可用性是主要的優勢。 與 SSH 協議類似,HTTP 協議也非常快和高效。
另一個好處是 HTTP/S 協議被廣泛使用,一般的企業防火牆都會允許這些埠的數據通過。
缺點
在一些伺服器上,架設 HTTP/S 協議的服務端會比 SSH 協議的棘手一些。 除了這一點,用其他協議提供 Git 服務與 「智能」 HTTP 協議相比就幾乎沒有優勢了。
如果你在 HTTP 上使用需授權的推送,管理憑證會比使用 SSH 密鑰認證麻煩一些。 然而,你可以選擇使用憑證存儲工具,比如 OSX 的 Keychain 或者 Windows 的憑證管理器。 參考 憑證存儲 如何安全地保存 HTTP 密碼。
SSH 協議
架設 Git 伺服器時常用 SSH 協議作為傳輸協議。 因為大多數環境下已經支持通過 SSH 訪問 —— 即時沒有也比較很容易架設。 SSH 協議也是一個驗證授權的網路協議;並且,因為其普遍性,架設和使用都很容易。
優勢
用 SSH 協議的優勢有很多。 首先,SSH 架設相對簡單 —— SSH 守護進程很常見,多數管理員都有使用經驗,並且多數操作系統都包含了它及相關的管理工具。 其次,通過 SSH 訪問是安全的 —— 所有傳輸數據都要經過授權和加密。 最後,與 HTTP/S 協議、Git 協議及本地協議一樣,SSH 協議很高效,在傳輸前也會盡量壓縮數據。
缺點
SSH 協議的缺點在於你不能通過它實現匿名訪問。 即便只要讀取數據,使用者也要有通過 SSH 訪問你的主機的許可權,這使得 SSH 協議不利於開源的項目。 如果你只在公司網路使用,SSH 協議可能是你唯一要用到的協議。 如果你要同時提供匿名只讀訪問和 SSH 協議,那麼你除了為自己推送架設 SSH 服務以外,還得架設一個可以讓其他人訪問的服務。
③ 如何編寫一個全新的 Git 協議
這是復要造輪子啊。。制。。。。。。
不知道對現有的git協議了解到何種程度了
可以看下git的源碼
如果只是git協議中的某個部分不符合你的需求的話
可以進行修改而沒必要完全推翻重來
畢竟這個項目是比較大的
建議還是修改吧
當然如果就是想造輪子的話
那就造吧
沒有什麼不可以
對git協議的不足做修改
對好的地方自己重新實現也提好的
④ 如何設置git提交時git協議
如下步驟:
1.創建復xxx_template文件,其內容為團制隊制定的Git提交注釋規范,如:
Desgraption:
Date:
Author:
2.通過git config命令配置commit_template,如:
git config –global commit.template /d/develop/Git/Git_Home/commit_template
3.設置git commit時填寫注釋所用的編輯器,如:
git config –global core.editor vi
OK,設置完成,提交使用git commit會出現與下圖相似的界面填寫好注釋才能提交成功:
⑤ git上拉取內容會有兩個協議,有什麼區別
合同和協來議在實踐中沒有什源么區別.都是雙方意思表示一致而達成的一種契約.簡單地說,就是你情我願,然後我們把大家都同意的事情固定下來,說明白,說清楚,那麼我們達成一致的這個事項就是協議,在法律上就叫合同.
一般來說,生效的合同和協議法律效力就是相同的.除非沒有生效或因為一些條件而失效.比如,合同或協議的一方是個7歲的小孩,這樣的合同就沒有效力.
需要公證的合同或協議只是把合同或協議的效力固定並強化,如果法律沒有要求,合同,協議的當事人也沒有約定,是不需要特別的公證的.
合同或協議一般兩份就夠了.合同當事人各持一份.至於您說的第三份,很可能是給見證人或第三人,這個作用也是為了強化合同或協議的效力,由雙方當事人約定的.
合同或協議一般只是名稱,叫法的不同.只要不違反法律和道德風俗,當事人可以任意約定合同或協議的名稱,內容,形式,都是有效的.
⑥ git 依賴那些安全問題,我在生產搭建一個git服務,只開通了ssh協議。git就不能用了
您好,這樣的:
第一:關於SSH的設置
1、 在客戶端
[root@ www.linuxidc.net ~]# ssh-keygen //生成公匙和密匙
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
af:7a:4c:de:69:7d:5d:4c:74:41:2f:4b:9a:9f:69:08 root@ www.linuxidc.net
[root@ www.linuxidc.net ~]# scp .ssh/id_rsa.pub 192.168.1.193:/root //把自己的公匙上傳到伺服器
The authenticity of host '192.168.1.193 (192.168.1.193)' can't be established.
RSA key fingerprint is 0a:54:06:f8:28:41:bd:cd:bd:e6:fa:ae:de:56:24:78.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.193' (RSA) to the list of known hosts.
[email protected]'s password:
id_rsa.pub 100% 396 0.4KB/s 00:00
2、在伺服器端的設置
[root@ www.linuxidc.com ~]# ssh-keygen //下邊不輸入任何一直點擊確認
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
07:8f:af:6b:15:9c:7a:9b:7c:a8:7e:41:dd:bd:1f:56 root@ www.linuxidc.com
[root@ www.linuxidc.com ~]# cat id_rsa.pub >> .ssh/authorized_keys //導入客戶端的公匙
第二:關於git安裝和配置
1、 在伺服器端和客戶端的公共配置
[root@ www.linuxidc.com ~]# ls git-1.7.7.4.tar.gz
git-1.7.7.4.tar.gz
[root@ www.linuxidc.com ~]# tar zxvf git-1.7.7.4.tar.gz
[root@ www.linuxidc.com ~]# cd git-1.7.7.4
[root@ www.linuxidc.com git-1.7.7.4]# ./configure
[root@ www.linuxidc.com git-1.7.7.4]# make && make install
[root@ www.linuxidc.com git-1.7.7.4]# cp contrib/completion/git-completion.bash ~/.git-completion.bash
[root@ www.linuxidc.com git-1.7.7.4]# vi ~/.bashrc //加入下句話
source ~/.git-completion.bash
[root@ www.linuxidc.com git-1.7.7.4]# source ~/.bashrc
2、 在伺服器端僅有的操作
[root@ www.linuxidc.com ~]# mkdir -p /opt/git/mygit
[root@ www.linuxidc.com mygit]# git --bare init //創建「倉庫「
Initialized empty Git repository in /opt/git/mygit/
3、 在客戶端的操作
[root@ www.linuxidc.net ~]# mkdir /git
[root@ www.linuxidc.net ~]# cd /git/
[root@ www.linuxidc.net git]# git init
Initialized empty Git repository in /git/.git/
[root@ www.linuxidc.net git]# vim README
Hello ethnicitybeta!
[root@ www.linuxidc.net git]# git add .
[root@ www.linuxidc.net git]# git commit -m "1st commmit"
[master (root-commit) e28450f] 1st commmit
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 README
[root@ www.linuxidc.net git]# git remote add origin 192.168.1.193:/opt/git/mygit
[root@ www.linuxidc.net git]# git push origin master //把自己的修改提交給伺服器
Counting objects: 3, done.
Writing objects: 100% (3/3), 221 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To 192.168.1.193:/opt/git/mygit
* [new branch] master -> master
第三:關於許可權的設定
這里設置只有有許可權的人可以瀏覽修改,其他人不可以
[root@ www.linuxidc.com ~]# useradd git
[root@ www.linuxidc.com ~]# vim /etc/passwd
git:x:501:501::/home/git:/bin/bash/git-shell
這樣就可以了。
⑦ git倉庫,以http下載了代碼,然後做了修改,再用命令將傳輸協議改成了ssh協議,現在提交到倉庫再push報錯
git push origin 本地分支:遠程分支
⑧ git fetch支持 http協議嗎
一旦遠程主機的版復本庫有了更新制(Git術語叫做commit),需要將這些更新取回本地,這時就要用到git fetch命令。
$ git fetch <遠程主機名>
上面命令將某個遠程主機的更新,全部取回本地。
默認情況下,git fetch取回所有分支(branch)的更新。如果只想取回特定分支的更新,可以指定分支名。
$ git fetch <遠程主機名> <分支名>
比如,取回origin主機的master分支。
$ git fetch origin master
所取回的更新,在本地主機上要用」遠程主機名/分支名」的形式讀取。比如origin主機的master,就要用origin/master讀取。
git branch命令的-r選項,可以用來查看遠程分支,-a選項查看所有分支。
$ git branch -r
origin/master
$ git branch -a
* master
remotes/origin/master
上面命令表示,本地主機的當前分支是master,遠程分支是origin/master。
取回遠程主機的更新以後,可以在它的基礎上,使用git checkout命令創建一個新的分支。
⑨ 為什麼VS2015/2017內置的Git插件都不支持SSH協議的地址
各有優缺點,來總的來說,HTTP使用更簡便廣自泛。 以下參考: (Git官方伺服器協議文檔) Git 可以使用四種主要的協議來傳輸資料:本地協議(Local),HTTP 協議,SSH(Secure Shell)協議及 Git 協議。
⑩ 從github上克隆倉庫為什麼不能用git@協議了
不是git@的問題,你要明白這個符號前面的git是表示用戶的意思,而@後面一般是跟上倉庫地址。不知道你是clone的公開源還是企業源。