小型簡易GIT服務器搭建和使用

搭建GIT服務器的文章有很多,多數在管理的時候都使用了gitosis作為管理工具,但是作為一個小團隊(人數少于50人),我覺得完全可以使用公鑰驗證的方式,這樣會簡單不少,下面來看看簡易的搭建方法吧。

服務器版本:ubuntu 16.04

我的搭建過程是參考指導文檔 https://git-scm.com/book/zh/v2/

首先安裝git和ssh等工具

sudo apt-get install git openssh-server openssh-client

初次運行git要做一些基本的信配置

 git config --global user.name "John Doe"git config --global user.email johndoe@example.com

這樣服務器的軟件就搞定了,下面我們來做一下配置

下面你可以新建用戶,當然也可以不新建,然后在用戶目錄下新建.ssh文件,在.ssh中新建

authorized_keys的文件,這個文件主要用來保存其他用戶的公鑰

sudo adduser git
su git
cd
mkdir .ssh && chmod 700 .ssh
touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys

下面的操作是在其他客戶端電腦上的操作,即生成秘鑰執行ssh-keygen -t rsa會在你的家目錄中.ssh/生成id_rsa.pub(公鑰)和id_rsa(私鑰),將公鑰發送到服務器的/tmp目錄下,最好重命名一下,防止覆蓋了別人的. 如:id_rsa_1.pub

ssh-keygen -t rsa
scp ~/.ssh/id_rsa_1.pub git@gitserver:/tmp/
//下面的操作是服務器的端要做的了,將公鑰內容放到authorized_keys中。
cat /tmp/id_rsa_1.pub >> ~/.ssh/authorized_keys  

這樣就可以了,下面你要做的就是初始化倉庫代碼

mkdir git
cd git
mkdir project.git
cd  project.git
git init --bare

在初始化代碼的時候要注意,如果你原來的代碼使用repo或者git管理的請先將他們的索引刪掉,不然你上傳的代碼十不全的,可以執行一代碼。

find -name ".git" -o ".repo" -o ".gitignore"|xargs rm -rf 

git沒法直接把代碼包拖進來管理,所以初始化倉庫后你要做的是初始化代碼

on John's computercd myprojectgit initgit add .git commit -m 'initial commit'git remote add origin git@gitserver:/path to/git/project.gitgit push origin master

下面你就可以在客戶端操作了,獲取代碼并修改提交

一般第一次使用我們會執行

mkdir projectcd  projectgit initgit clone git@192.168.1.158:/home/project/solox_android.git    //這里git使我們的git管理員,192.168.1.158使我們git服務器地址,solox_android.git是我們的項目名,這樣我們就拿到代碼了
git checkout -b branch_name     //因為我們不想在開發新功能的時候,把我們不成熟的代碼直接放到master分支中,所以暫時在新分支中開發。刪除分支的命令式(git checkout -d branch_name)

修改代碼并提交到服務器中

git pull            //一般在開發之前我們要將代碼更新到最新版本git status     //查看一下我們提交的文本的狀態,主要看看有哪些我們修改的文件git diff filename //看看我們修改的文件內容,防止誤提交git add   //把它們添加到緩存區git commit -m "代碼提交信息"  //改動已經提交到了 HEAD,但是還沒到你的遠端倉庫,并且這里加上了你的提交loggit push origin master //提交到遠端倉庫,可以把 master 換成你想要推送的任何分支
如果你誤刪除了本地的某個文件,可以使用git checkout --    //從服務器單獨拿文件
查看提交記錄git log -p -2// -P是顯示提交的內容差異   -2表示先最近的2次git log -p -2 filename //查看這個文件最近兩次的修改記錄
查看差異git  diff   filename

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/42657.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42657.shtml
英文地址,請注明出處:http://en.pswp.cn/web/42657.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Unix\Linux 執行shell報錯:“$‘\r‘: 未找到命令” 解決

linux執行腳本sh xxx.sh報錯:$xxx\r: 未找到命令 原因:shell腳本在Windows編寫導致的換行問題: Windows 的換行符號為 CRLF(\r\n),而 Unix\Linux 為 LF(\n)。 縮寫全稱ASCII轉義說…

第二證券:ppi指數是什么,ppi指數下降對股市有什么影響?

PPI全稱Producer Price Index,PPI指數即“出產者價格指數”,反映的是一守時期內出產者購買中心產品和原材料價格的改動趨勢和改動程度。 了解ppi指數: 簡單了解便是,計算出出產者的本錢改動狀況,然后反映到價格上。 …

windows@windows設備之間遠程命令行控制方案@windows設備間使用OpenSSH

文章目錄 abstract為什么考慮命令行連接討論主題 powershell遠程控制使用PowerShell遠程管理前提條件:步驟:1. 啟用WinRM服務2. 配置信任主機3. 測試連接4. 創建遠程會話5. 運行遠程命令6. 關閉會話 例子小結 SSH方案基礎連接免密自動登錄修改配置文件在…

【自學網絡安全】:安全策略與用戶認證綜合實驗

實驗拓撲圖: 實驗任務: 1、DMZ區內的服務器,辦公區僅能在辦公時間內(9:00-18:00)可以訪問,生產區的設備全天可以訪問 2、生產區不允許訪問互聯網,辦公區和游客區允許訪問互聯網 3、辦公區設備10.0.2.10不允許訪問Dmz區…

新聞資訊整合平臺:一站式滿足企業信息需求

摘要: 面對信息爆炸的時代,企業如何在海量數據中快速獲取有價值資訊,成為提升競爭力的關鍵。本文將探討如何通過一站式新聞資訊整合平臺,實現企業信息需求的全面滿足,提升決策效率,同時介紹實用工具推薦&a…

Redis數據類型和數據隊列

一.Redis數據類型 參考資料:http://www.redis.cn/topics/data-types.html 相關命令參考: http://redisdoc.com/ Redis 是一種基于內存的開源數據結構存儲系統,支持多種數據類型,每種數據類型都有自己特定的操作命令。 String(字…

Games101學習筆記 Lecture17 Materials and Appearances

Lecture17 Materials and Appearances 材質 BRDF一、Diffuse/Lambertian Material二、Glossy Material三、Ideal reflective/ refractive Material (BSDF)1.鏡面反射2.鏡面折射3.菲涅爾項 Fresnel 四、Microfacet BRDF 微表面五、Isotropic / Anisotropic Materials (BRDFs)An…

博客標題:C++中的繼承:構建面向對象的基石

目錄 ?編輯 引言 繼承的基本形式 示例1:基本繼承 繼承的類型 示例2:不同類型的繼承 多重繼承 示例3:多重繼承 繼承與多態性 示例4:繼承與多態 結論 結尾 引言 在面向對象編程(OOP)中&#xff…

【持續集成_03課_Linux部署Sonar+Gogs+Jenkins】

一、通過虛擬機搭建Linux環境-CnetOS 1、安裝virtualbox,和Vmware是一樣的,只是box更輕量級 1)需要注意內存選擇,4G 2、啟動完成后,需要獲取服務器IP地址 命令 ip add 服務器IP地址 通過本地的工具,進…

新手教學系列——crontab 使用不當引發的服務器性能問題

起因及癥狀 最近,我們的一臺服務器隨著運行時間的增加,逐漸出現了壓力過大的問題。具體表現為數據庫連接數飆升至 4000+,Redis 頻繁超時,系統報錯文件打開數過多等。針對這些問題,我們逐一檢查了數據庫連接池、Redis 連接池以及系統的 ulimit 配置,但都未能找到問題的根…

第241題| 確定極限中參數問題 | 武忠祥老師每日一題

解題思路:確定極限中的參數的方法是求這個極限;求極限根據類型選方法。 形可以用到三種方法:洛必達,等價,泰勒。 先觀察題目,將看成一個整體,同時,并令,整理之后如下: 這里也要想辦…

mysql怎么調整緩沖區大小

MySQL中調整緩沖區大小是數據庫性能優化的重要一環。緩沖區大小直接影響了數據庫的讀寫性能和響應速度。以下是一些常見的MySQL緩沖區及其調整方法: 一、InnoDB緩沖池(InnoDB Buffer Pool) InnoDB緩沖池是InnoDB存儲引擎用來緩存表數據和索…

代碼隨想錄第7天 454 、 383 、15、18

代碼隨想錄第7天 454. 四數相加 II 思路就是先統計nums1和num2各個元素之和出現的次數&#xff0c;然后遍歷num3和nums4各個元素之和&#xff0c;看其相反數是否在map中&#xff0c;若在加上出現次數 class Solution { public: int fourSumCount(vector<int> &num…

nginx.conf配置文件

1、全局模塊 worker_processes 1; 工作進程數&#xff0c;一般設置成服務器內核數的2倍&#xff08;一般不超過8個&#xff0c;超過8個反而會降低性能&#xff0c;一般是4個&#xff0c;1-2個也可以&#xff09; 處理進程的過程必然涉及配置文件和展示頁面&#xff0c;也就是…

高斯過程的定義

高斯過程 1. 高斯過程的定義2. 協方差矩陣的構建3. 協方差矩陣的性質3.1. 計算挑戰3.2. 解決方法 1. 高斯過程的定義 高斯過程可以看作是對函數的分布&#xff0c;它假定任何有限數量的函數值的集合服從一個多元高斯分布。給定輸入數據點集合 { x 1 , x 2 , … , x n } \left…

2024.7.9作業

1、提示并輸入一個字符串&#xff0c;統計該字符串中字母、數字、空格以及其他字符的個數 #include <stdio.h> #include <string.h> int main(int argc,const char *argv[]) { char arr[30]{0}; int zm0,kg0,sz0,qt0; printf("請輸入字符串&…

OpenStack是一個開源的云計算平臺

OpenStack是一個開源的云計算平臺&#xff0c;由多個組件組成&#xff0c;這些組件協同工作&#xff0c;提供包括計算、網絡、存儲和身份服務在內的基礎設施即服務(IaaS)。OpenStack最初由NASA和Rackspace合作開發&#xff0c;目的是創建一個開放源代碼的云操作系統。 OpenSta…

智慧光伏一站式解決方案

光伏電站智慧化管理平臺&#xff0c;將現代先進的數字信息技術、通信技術、互聯網技術、云計算技術、大數據挖掘技術與光伏技術高度融合而形成。可以滿足光伏企業對電站的高發電量、低初始投資、低運維成本等需求&#xff0c;從開發到運維的25年生命周期內&#xff0c;實現高收…

使用clion刷leetcode

如何優雅的使用clion刷leetcode 安裝插件&#xff1a;LeetCode Editor) 插件配置&#xff1a; 這樣我們每打開一個項目&#xff0c;就會創建類似的文件 我們的項目結構&#xff1a; 我們在題解文件中導入頭文件myHeader.h并將新建的文件添加到cmakelists.txt文件&#xff0c;…

2024前端面試真題【JS篇】

DOM DOM&#xff1a;文本對象模型&#xff0c;是HTML和XML文檔的編程接口。提供了對文檔的結構化的表述&#xff0c;并定義可一種方式可以使從程序中對該結構進行訪問&#xff0c;從而改變文檔的結構、樣式和內容。 DOM操作 創建節點&#xff1a;document.createElement()、do…