git 安裝與基本操做

it是一個開源的分佈式版本控制系統,用於敏捷高效地處理任何或小或大的項目。ios

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

Git 與經常使用的版本控制工具 CVS, Subversion 等不一樣,它採用了分佈式版本庫的方式,沒必要服務器端軟件支持。git


安裝環境:github

[root@nagios_client2 git]# cat /etc/redhat-release shell

CentOS release 6.9 (Final)緩存

[root@nagios_client2 git]# uname -r                bash

2.6.32-696.el6.x86_64服務器


[root@nagios_client2 git]# cd /root/tool/git/app

#安裝依賴包:ssh

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel -y

yum install gcc-c++ perl-ExtUtils-MakeMaker -y

#安裝git:

wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz

tar zxvf git-2.9.5.tar.gz

cd git-2.9.5

make configure

./configure --prefix=/usr/local/git

make profix=/usr/local/git

make install

#加入環境變量:

echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/profile

source /etc/profile

#檢查安裝版本:

git --version

顯示結果:git version 2.9.5


Git 建立倉庫:

[root@nagios_client2 ~]# mkdir /home/learngit

[root@nagios_client2 ~]# cd /home/learngit/ 

初始化:

[root@nagios_client2 learngit]# git init

Initialized empty Git repository in /home/learngit/.git/

會生成一個隱藏的.git目錄,全部 Git 須要的數據和資源都存放在這個目錄中。

若是當前目錄下有幾個文件想要歸入版本控制,須要先用 git add 命令告訴 Git 開始對這些文件進行跟蹤,而後提交:

touch file1.txt

git add file1.txt

git commit -m 'filesersion'

顯示以下結果:


*** Please tell me who you are.


Run


  git config --global user.email "you@example.com"

  git config --global user.name "Your Name"


to set your account's default identity.

Omit --global to set the identity only in this repository.


fatal: unable to auto-detect email address (got 'root@nagios_client2.(none)')


運行:

it config --global user.email "441009395@qq.com"

git config --global user.email "alone"

git commit -m 'filesersion' 

顯示:                           

[master (root-commit) 5a61707] filesersion

 1 file changed, 0 insertions(+), 0 deletions(-)        


編輯file1.txt文件

vi file1.txt

Git is a distributed version control system.

Git is free software.

運行git status命令看看結果:

On branch master

Changes not staged for commit:

  (use "git add <file>..." to update what will be committed)

  (use "git checkout -- <file>..." to discard changes in working directory)


        modified:   file1.txt


no changes added to commit (use "git add" and/or "git commit -a")


git status命令可讓咱們時刻掌握倉庫當前的狀態,上面的命令告訴咱們,readme.txt被修改過了,但尚未準備提交的修改。


雖然Git告訴咱們readme.txt被修改了,但若是能看看具體修改了什麼內容,天然是很好的。好比你休假兩週從國外回來,第一天上班時,已經記不清上次怎麼修改的readme.txt,因此,須要用git diff這個命令看看:

git diff file1.txt

顯示結果:

diff --git a/file1.txt b/file1.txt

index e69de29..9247db6 100644

--- a/file1.txt

+++ b/file1.txt

@@ -0,0 +1,2 @@

+Git is a distributed version control system.

+Git is free software.


git reset HEAD

git reset HEAD 命令用於取消已緩存的內容。


git rm

git rm 會將條目從緩存區中移除。這與 git reset HEAD 將條目取消緩存是有區別的。 "取消緩存"的意思就是將緩存區恢復爲咱們作出修改以前的樣子。

默認狀況下,git rm file 會將文件從緩存區和你的硬盤中(工做目錄)刪除。

若是你要在工做目錄中留着該文件,可使用 git rm --cached:


git mv

git mv 命令用於移動或重命名一個文件、目錄、軟鏈接。


Git 遠程倉庫(Github)

Git 並不像 SVN 那樣有個中心服務器。

目前咱們使用到的 Git 命令都是在本地執行,若是你想經過 Git 分享你的代碼或者與其餘開發人員合做。 你就須要將數據放到一臺其餘開發人員可以鏈接的服務器上。

添加遠程庫

要添加一個新的遠程倉庫,能夠指定一個簡單的名字,以便未來引用,命令格式以下:

git remote add [shortname] [url]

本例以Github爲例做爲遠程倉庫,若是你沒有Github能夠在官網https://github.com/註冊。

因爲你的本地Git倉庫和GitHub倉庫之間的傳輸是經過SSH加密的,因此咱們須要配置驗證信息:

使用如下命令生成SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"

後面的 your_email@youremail.com 改成你在 github 上註冊的郵箱,以後會要求確認路徑和輸入密碼,咱們這使用默認的一路回車就行。成功的話會在~/下生成.ssh文件夾,進去,打開 id_rsa.pub,複製裏面的 key。

回到 github 上,進入 Account => Settings(帳戶配置)。


搭建git私有服務器:

Git 服務器搭建

遠程倉庫使用了 Github,Github 公開的項目是免費的,可是若是你不想讓其餘人看到你的項目就須要收費。

這時咱們就須要本身搭建一臺Git服務器做爲私有倉庫使用。


一、安裝Git

$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel

$ yum install git

接下來咱們 建立一個git用戶組和用戶,用來運行git服務:

$ groupadd git

$ adduser git -g git


二、建立證書登陸

收集全部須要登陸的用戶的公鑰,公鑰位於id_rsa.pub文件中,把咱們的公鑰導入到/home/git/.ssh/authorized_keys文件裏,一行一個。

若是沒有該文件建立它:

$ cd /home/git/

$ mkdir .ssh

$ chmod 700 .ssh

$ touch .ssh/authorized_keys

$ chmod 600 .ssh/authorized_keys


三、初始化Git倉庫

首先咱們選定一個目錄做爲Git倉庫,假定是/home/gitrepo/runoob.git,在/home/gitrepo目錄下輸入命令:

$ cd /home

$ mkdir gitrepo

$ chown git:git gitrepo/

$ cd gitrepo


$ git init --bare runoob.git

Initialized empty Git repository in /home/gitrepo/runoob.git/

以上命令Git建立一個空倉庫,服務器上的Git倉庫一般都以.git結尾。而後,把倉庫所屬用戶改成git:

$ chown -R git:git runoob.git


四、克隆倉庫

$ git clone git@23.247.78.254:/home/gitrepo/runoob.git

Cloning into 'runoob'...

warning: You appear to have cloned an empty repository.

Checking connectivity... done.

23.247.78.254 爲 Git 所在服務器 ip 

這樣咱們的 Git 服務器安裝就完成了,接下來咱們能夠禁用 git 用戶經過shell登陸,能夠經過編輯/etc/passwd文件完成。找到相似下面的一行:

git:x:503:503::/home/git:/bin/bash

改成:

git:x:503:503::/home/git:/sbin/nologin

相關文章
相關標籤/搜索