導航:首頁 > IDC知識 > git測試伺服器

git測試伺服器

發布時間:2020-12-29 23:24:51

1、怎麼clone自己搭建的git伺服器

首先需要裝好CentOS系統,作為測試,你可以選擇裝在虛擬機上,這樣比較方便。這步默認你會,就不講了。
有了CentOS,那麼如何搭建Git伺服器呢?
1、首先需要安裝Git,可以使用yum源在線安裝:
[root@localhost Desktop]# yum install -y git

2、創建一個git用戶,用來運行git服務
# adser git

3、初始化git倉庫:這里我們選擇/data/git/learngit.git來作為我們的git倉庫
[root@localhost git]# git init --bare learngit.git
Initialized empty Git repository in /data/git/learngit.git/

執行以上命令,會創建一個裸倉庫,裸倉庫沒有工作區,因為伺服器上的Git倉庫純粹是為了共享,所以不讓用戶直接登錄到伺服器上去改工作區,並且伺服器上的Git倉庫通常都以.git結尾。然後,把owner改為git:
[root@localhost git]# chown git:git learngit.git

4、在這里,Git伺服器就已經搭得差不多了。下面我們在客戶端clone一下遠程倉庫
Zhu@XXX /E/testgit/8.34
$ git clone [email protected]:/data/git/learngit.git
Cloning into 'learngit'...
The authenticity of host '192.168.8.34 (192.168.8.34)' 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 '192.168.8.34' (RSA) to the list of known hosts.
[email protected]'s password:

這里兩點需要注意:第一,當你第一次使用Git的clone或者push命令連接GitHub時,會得到一個警告:
The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
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 'github.com' (RSA) to the list of known hosts.

這個警告只會出現一次,後面的操作就不會有任何警告了。
如果你實在擔心有人冒充GitHub伺服器,輸入yes前可以對照GitHub的RSA Key的指紋信息是否與SSH連接給出的一致。
第二,這里提示你輸入密碼才能clone,當然如果你知道密碼,可以鍵入密碼來進行clone,但是更為常見的方式,是利用SSH的公鑰來完成驗證。

5、創建SSH Key
首先在用戶主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個文件,如果已經有了,可直接跳到下一步。如果沒有,打開Shell(Windows下打開Git Bash),創建SSH Key:
$ ssh-keygen -t rsa -C "[email protected]"

你需要把郵件地址換成你自己的郵件地址,然後一路回車,使用默認值即可,由於這個Key也不是用於軍事目的,所以也無需設置密碼。

如果一切順利的話,可以在用戶主目錄里找到.ssh目錄,裡面有id_rsa和id_rsa.pub兩個文件,這兩個就是SSH Key的秘鑰對,id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。

6、Git伺服器打開RSA認證
然後就可以去Git伺服器上添加你的公鑰用來驗證你的信息了。在Git伺服器上首先需要將/etc/ssh/sshd_config中將RSA認證打開,即:
1.RSAAuthentication yes
2.PubkeyAuthentication yes
3.AuthorizedKeysFile .ssh/authorized_keys

這里我們可以看到公鑰存放在.ssh/authorized_keys文件中。所以我們在/home/git下創建.ssh目錄,然後創建authorized_keys文件,並將剛生成的公鑰導入進去。

然後再次clone的時候,或者是之後push的時候,就不需要再輸入密碼了:
Zhu@XXX/E/testgit/8.34
$ git clone [email protected]:/data/git/learngit.git
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每次一登錄就自動退出。

2、什麼是git伺服器

Git是一個開源的分布式版本控制系統,可以有效、高速地處理從很小到非常大的項目版本管理。 

Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟體。

Git的主要功能:

1、查看郵件或者通過其它方式查看一般開發者的提交狀態。

2、打上補丁,解決沖突(可以自己解決,也可以要求開發者之間解決以後再重新提交,如果是開源項目,還要決定哪些補丁有用,哪些不用)。

3、向公共伺服器提交結果,然後通知所有開發人員。



(2)git測試伺服器擴展資料:

Git的優缺點:

優點:

1、適合分布式開發,強調個體。

2、公共伺服器壓力和數據量都不會太大。

3、速度快、靈活。

4、任意兩個開發者之間可以很容易的解決沖突。

5、離線工作。

缺點:

1、資料少(起碼中文資料很少)。

2、學習周期相對而言比較長。

3、不符合常規思維。

4、代碼保密性差,一旦開發者把整個庫克隆下來就可以完全公開所有代碼和版本信息。

3、使用git做代碼管理,如何在代碼改變的時候自動同步到測試伺服器上?

git 有一系列 hook,視具體配置,利用 post-receive hook 或 post-commit hook 即可。

4、如何用tortoisegit部署伺服器

在D盤新建一個目錄,例如"D:\Git",並進入目錄右鍵目錄空白處選擇"Git Create repository here...",彈出對話框點確認,這樣即建立了一個本專地Git倉庫.
在該倉庫目屬錄下創建一個測試項目文本文件,右鍵目錄空白處,選擇Git Commit -> "master" ...,在彈出對話框里輸入提示注釋,選擇要加入的版本控制文件,確定即可提交.
現在只是在本地實現使用Git管理項目,在此界面若顯示Success則本地提交成功,接下來點擊Push..,把之前的改動遞交到Git伺服器上.

5、git怎麼clone伺服器上的代碼

1
准備,下載git到你的電腦上,下載地址:
安裝,直接下一步下一步就好,記得下載位置就好,配置的時候要用
2
在studio中設置git插件:File->Setting->Version Control->Git,添加您剛剛安裝的git地址目錄,例如: C:\Program Files\Git\bin\git.exe ,
然後可以點擊Test測試一下,如下圖:那麼你就設置成功了。

3
初始化git項目(git init),操作如下:VCS->Enable Control Integration->Select "Git".
4
為git添加remote,在這一步中,studio沒有為我們提供可視化的GUI,得用Git工具了。找到並打開git安裝目錄下面的Git Bash,將目錄切換到項目的目錄,然後輸入git添加remote的命令,例如:git remote add origin "".

5
將代碼添加到VCS(git add),選中要提交的文件->VCS->Git->Add,

6
提交變化(git commit),VCS->Commit Changes, 在提交的時候可以選擇Commit and Push,就可以直接push到伺服器。

7
Git Push,VCS->Git->Push.
最後,如果要是clone project到studio

6、本地git軟體怎麼連接linux伺服器地址

1、前期准備
伺服器上配置好的git
git客戶端
1.1
在伺服器上安裝git (本機所使用的linux是ubuntu)
在伺服器輸入命令:sudo apt-get install git即可 然後創建名字為git的用戶組和用戶
1.2
下載客戶端 在瀏覽器地址欄輸入:https://git-for-windows.github.io/
回車後

點擊Download進行下載
2、具體操作
2.1
在合適的位置創建一個目錄充當git遠程倉庫(本機位置為/usr/testgit),然後使用init命令初始化倉庫
在命令終端輸入:
sudo git init –bare

2.2
將git init生成的目錄所屬者改為git
輸入命令:sudo chown -R git:git *

至此伺服器端的操作完成。
在客戶端合適位置使用git 客戶端從伺服器資源
2.3
首先打開git客戶端

點擊Git Bash Here 後出現

在git客戶端命名終端輸入:
git clone git@xxxxxx:/rrrrr 其中xxxxxx是遠程伺服器的地址 rrrrr為git倉庫所在位置

如果配置正確你選中的目錄下會出現名字為testgit的文件夾 testgit文件夾下隨意創建若干個文件

2.3
在git客戶端上使用命令 git add 111.txt 222.txt 333.txt 或者使用git add .(將本文件夾下所有文件都add) 該命令的作用是告訴git把文件添加到git倉庫
2.4
然後使用git commit命令將文件提交到git倉庫

-m 後面的內容為本次提交文件的一些注釋內容
此時文件還沒有從本地倉庫上傳到遠程伺服器倉庫
2.5
使用push命令將本地倉庫中的內容提交到遠程倉庫
在git客戶端命令終端輸入:git push origin master

至此本地倉庫中的文件上傳已經上傳到遠程伺服器倉庫。
在其他文件夾下再次使用 git clone 命令 從遠程伺服器同步倉庫

7、什麼是「git」伺服器?

1、git是一種分布式的版本管理系統,Linux的創造者Linus寫的。

2、GitHub是基於git的代碼庫託管站,也算是程序員的SMS(以碼會友),其中一個主要的開源代碼發布或託管站

3、git的作用就是對文件進行版本管理,方便在不同版本進行切換修改,類似文件分不同時間備份讓後需要時找回其中一份代替,不過更方便使用。

4、GitHub某種程度上就是代碼的網盤,也有開源開發商作為代碼發布、存放、徵集Bug和意見用。

5、git的特點:

1)就是雲的概念,代碼可以存在雲端git的網站上,就像我們在各種設備間都能瀏覽到自己存儲的網盤文件 一樣,我們在各個設備間都能訪問到自己的代碼。 

2)它的社交屬性。因為代碼是開源的,每個人都可以瀏覽別人的項目並提出意見,而且它像微博一樣,你能粉別人,也能被別人粉。如果你是大牛,如果你或者你的項目夠有趣,你就會有很多粉絲,你的項目也會被更多的人star。 

3)它能給團隊合作帶來很大幫助。現在有些公司就是用github來開發項目的。github允許多人多分支的工作,並且標示別人的修改和備注,最後還能合並。


8、如何用git,在伺服器上面創建一個分支

1,從已有的分支創建新的分支(如從master分支),創建一個dev分支

git checkout -b dev
2,創建完可以查看一下,分支已經切換到dev
git branch
3,提交該分支到遠程倉庫

git push origin dev
4,測試從遠程獲取dev

git pull origin dev

或者:

如果用命令行,運行 git fetch,可以將遠程分支信息獲取到本地,再運行 git checkout -b local-branchname origin/remote_branchname 就可以將遠程分支映射到本地命名為local-branchname 的一分支
5,我覺得現在重要的就是設置git push,pull默認的提交獲取分支,這樣就很方便的使用git push 提交信息或git pull獲取信息

git branch --set-upstream-to=origin/dev

取消對master的跟蹤

git branch --unset-upstream master
6,現在隨便修改一下工程文件的內容,然後git commit ,git push,之後就可以直接提交到遠程的dev分支中,而不會是master

與git測試伺服器相關的知識