git的安装以及使用

本文参考菜鸟教程https://www.runoob.com/git/git-tutorial.html

一、Git 安装配置

Windows 平台上安装
在 Windows 平台上安装 Git 同样轻松,有个叫做 msysGit 的项目提供了安装包,可以到 GitHub 的页面上下载 exe 安装文件并运行:
安装包下载地址:https://gitforwindows.org/
完成安装之后,就可以使用命令行的 git 工具(已经自带了 ssh 客户端)了,另外还有一个图形界面的 Git 项目管理工具。
在开始菜单里找到"Git"->“Git Bash”,会弹出 Git 命令窗口,你可以在该窗口进行 Git 操作。
用户信息
第一步需要配置用户名和邮箱地址:

$ git config --global user.name "runoob"
$ git config --global user.email test@runoob.com

如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。
如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。
文本编辑器
设置Git默认使用的文本编辑器, 一般可能会是 Vi 或者 Vim。如果你有其他偏好,比如 Emacs 的话,可以重新设置::

$ git config --global core.editor emacs

差异分析工具
还有一个比较常用的是,在解决合并冲突时使用哪种差异分析工具。比如要改用 vimdiff 的话:

$ git config --global merge.tool vimdiff

查看配置信息
要检查已有的配置信息,可以使用 git config --list 命令:

$ git config --list
http.postbuffer=2M
user.name=runoob
user.email=test@runoob.com

这些配置我们也可以在 ~/.gitconfig 或 /etc/gitconfig 看到,如下所示:

vim ~/.gitconfig 

查阅某个环境变量的设定,只要把特定的名字跟在后面即可,像这样:

$ git config user.name

二、Git 工作流程

  1. 克隆 Git 资源作为工作目录。 git clone
  2. 在克隆的资源上添加或修改文件。
  3. 如果其他人修改了,你可以更新资源。
  4. 在提交前查看修改。
  5. 提交修改。
  6. 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。

三、Git 创建仓库

使用方法
1、使用当前目录作为Git仓库,我们只需使它初始化。

git init

2、使用我们指定目录作为Git仓库。

git init newrepo

git clone拷贝项目
我们使用 git clone 从现有 Git 仓库中拷贝项目(类似 svn checkout)。
克隆仓库的命令格式为:

git clone <repo>

如果我们需要克隆到指定的目录,可以使用以下命令格式:

git clone
参数说明:
repo:Git 仓库。
directory:本地目录。
比如,要克隆 Ruby 语言的 Git 代码仓库 Grit,可以用下面的命令:

$ git clone git://github.com/schacon/grit.git

执行该命令后,会在当前目录下创建一个名为grit的目录,其中包含一个 .git 的目录,用于保存下载下来的所有版本记录。
如果要自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:

$ git clone git://github.com/schacon/grit.git mygrit

四、Git 基本操作

1、获取与创建项目命令:git init
2、克隆项目: git clone [url]

例如:我们克隆 Github 上的项目:$ git clone git@github.com:schacon/simplegit.git
3、基本快照-添加文件:

git status命令用于查看项目的当前状态。
例如:添加以下两个文件READMEhello.php

$ git add README hello.php

4、基本快照-修改 README 文件:

$ vim README

在 README 添加以下内容:# Runoob Git 测试,然后保存退出。
git status命令用于查看项目的当前状态。
修改后我们再执行 git add 命令将其添加到缓存中
当你要将你的修改包含在即将提交的快照里的时候,需要执行 git add
5、基本快照-是否有修改

$ git status -s

加了 -s 参数,以获得简短的结果输出。
6、查看执行 git status 的结果的详细信息

  1. 尚未缓存的改动:git diff
  2. 查看已缓存的改动: git diff --cached
  3. 查看已缓存的与未缓存的所有改动:git diff HEAD
  4. 显示摘要而非整个 diff:git diff --stat

7、将缓存区内容添加到仓库中:git commit
使用 -m 选项以在命令行中提供提交注释

$ git add hello.php
$ git status -s
A  README
A  hello.php
$ git commit -m '第一次版本提交'

-a 选项跳过git add 提交缓存的流程

git commit -am '修改 hello.php 文件'

8、取消已缓存的内容:git reset HEAD

$ git reset HEAD hello.php 

没有提交hello.php的改动
简而言之,执行 git reset HEAD 以取消之前 git add 添加,但不希望包含在下一提交快照中的缓存。
使用以下命令将 hello.php 的修改提交:

$ git commit -am '修改 hello.php 文件'

9、移除某个文件
要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除,然后提交。可以用以下命令完成此项工作

git rm <file>

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f

git rm -f <file>

如果把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 --cached 选项即可

git rm --cached <file>

如我们删除 hello.php文件:

$ git rm hello.php 
rm 'hello.php'
$ ls

README–不从工作区中删除文件:

$ git rm --cached README 
rm 'README'
$ ls
README

可以递归删除,即如果后面跟的是一个目录做为参数,则会递归删除整个目录中的所有子目录和文件:

git rm –r * 

进入某个目录中,执行此语句,会删除该目录下的所有文件和子目录。

10、git mv 命令用于移动或重命名一个文件、目录、软连接

$ git mv README  README.md

五、Git 分支管理

1、创建分支命令:

git branch (branchname)

2、切换分支命令:

git checkout (branchname)
 git checkout -b (branchname) 命令来创建新分支并立即切换到该分支下

3、合并分支命令:

git merge 

4、列出分支基本命令:

git branch

5、删除分支命令:

git branch -d (branchname)

六、Git 查看提交历史: git log

–oneline 选项来查看历史记录的简洁的版本
–graph 选项,查看历史中什么时候出现了分支、合并
–reverse 参数来逆向显示所有日志

七、Git 标签

为项目 runoob 发布一个"1.0"版本。 可以用 git tag -a v1.0 命令给最新一次提交打上(HEAD)"v1.0"的标签:

$ git tag -a v1.0 

查看标签:

git log --decorate

追加标签( 85fc7e7):

$ git tag -a v0.9 85fc7e7
$ git log --oneline --decorate --graph

查看所有标签

$ git tag

指定标签信息命令

git tag -a <tagname> -m "runoob.com标签"

PGP签名标签命令:

git tag -s <tagname> -m "runoob.com标签"

八、远程仓库(Github)

1、添加远程库
把本地仓库的内容推送到GitHub仓库
要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,命令格式如下:

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(账户配置)。
左边选择 SSH and GPG keys,然后点击 New SSH key 按钮,title 设置标题,可以随便填,粘贴在你电脑上生成的 key。

为了验证是否成功,输入以下命令:

$ ssh -T git@github.com
Hi tianqixin! You've successfully authenticated, but GitHub does not provide shell access.

之后在Repository name 填入 runoob-git-test(远程仓库名) ,其他保持默认设置,点击"Create repository"按钮,就成功地创建了一个新的Git仓库:
根据 GitHub 的提示,在本地的仓库下运行命令:

$ mkdir runoob-git-test                     # 创建测试目录
$ cd runoob-git-test/                       # 进入测试目录
$ echo "# 菜鸟教程 Git 测试" >> README.md     # 创建 README.md 文件并写入内容
$ ls                                        # 查看目录下的文件
README
$ git init                                  # 初始化
$ git add README.md                         # 添加文件
$ git commit -m "添加 README.md 文件"        # 提交并备注信息
[master (root-commit) 0205aab] 添加 README.md 文件
 1 file changed, 1 insertion(+)
 create mode 100644 README.md
 #提交到 Github
$ git remote add origin git@github.com:tianqixin/runoob-git-test.git
$ git push -u origin master

2、查看当前的远程库

$ git remote -v

加上 -v 参数,你还可以看到每个别名的实际链接地址
3、提取远程仓库
a、从远程仓库下载新分支与数据:

git fetch

该命令执行完后需要执行git merge 远程分支到你所在的分支。

b、从远端仓库提取数据并尝试合并到当前分支:

git merge

4、推送到远程仓库

$ touch runoob-test.txt      # 添加文件
$ git add runoob-test.txt 
$ git commit -m "添加到远程"
master 69e702d] 添加到远程
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 runoob-test.txt
$ git push origin master    # 推送到 Github

5、删除远程仓库

git remote rm [别名]

例子:

   $ git remote -v
    origin    git@github.com:tianqixin/runoob-git-test.git (fetch)
    origin    git@github.com:tianqixin/runoob-git-test.git (push)
    
# 添加仓库 origin2
$ git remote add origin2 git@github.com:tianqixin/runoob-git-test.git

$ git remote -v
origin    git@github.com:tianqixin/runoob-git-test.git (fetch)
origin    git@github.com:tianqixin/runoob-git-test.git (push)
origin2    git@github.com:tianqixin/runoob-git-test.git (fetch)
origin2    git@github.com:tianqixin/runoob-git-test.git (push)

# 删除仓库 origin2
$ git remote rm origin2
$ git remote -v
origin    git@github.com:tianqixin/runoob-git-test.git (fetch)
origin    git@github.com:tianqixin/runoob-git-test.git (push)

九、Git 服务器搭建

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

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

接下来我们将以 Centos 为例搭建 Git 服务器。

1、安装Git

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

接下来我们 创建一个git用户组和用户,用来运行git服务:

$ groupadd git
$ useradd git -g git

2、创建证书登录
收集所有需要登录的用户的公钥,公钥位于id_rsa.pub文件中,把我们的公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

如果没有该文件创建它:

$ cd /home/git/
$ mkdir .ssh
$ chmod 755 .ssh
$ touch .ssh/authorized_keys
$ chmod 644 .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 git@192.168.45.4:/home/gitrepo/runoob.git

Cloning into 'runoob'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

192.168.45.4 为 Git 所在服务器 ip ,你需要将其修改为你自己的 Git 服务 ip。

这样我们的 Git 服务器安装就完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值