git 安装与基本操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git 安装与基本操作相关的知识,希望对你有一定的参考价值。

it是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。


安装环境:

[[email protected]_client2 git]# cat /etc/redhat-release 

CentOS release 6.9 (Final)

[[email protected]_client2 git]# uname -r                

2.6.32-696.el6.x86_64


[[email protected]_client2 git]# cd /root/tool/git/

#安装依赖包:

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 创建仓库:

[[email protected]_client2 ~]# mkdir /home/learngit

[[email protected]_client2 ~]# cd /home/learngit/ 

初始化:

[[email protected]_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 "[email protected]"

  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 ‘[email protected]_client2.(none)‘)


运行:

it config --global user.email "[email protected]"

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 "[email protected]"

后面的 [email protected] 改为你在 github 上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在~/下生成.ssh文件夹,进去,打开 id_rsa.pub,复制里面的 key。

回到 github 上,进入 Account => Settings(账户配置)。


搭建git私有服务器:

Git 服务器搭建

远程仓库使用了 Github,Github 公开的项目是免费的,但是如果你不想让其他人看到你的项目就需要收费。

这时我们就需要自己搭建一台Git服务器作为私有仓库使用。


1、安装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


2、创建证书登录

收集所有需要登录的用户的公钥,公钥位于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


3、初始化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


4、克隆仓库

$ git clone [email protected]:/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


以上是关于git 安装与基本操作的主要内容,如果未能解决你的问题,请参考以下文章

macOS上Git安装与GitHub基本使用

Git与Github学习Git的安装和使用

Git与Github学习Git的安装和使用

git安装与基本命令

Git系列教程三 配置与基本命令

开发工具之Git