git实战-1、入门使用
文章目录
前言
VCS 出现前
- ⽤用⽬目录拷⻉贝区别不不同版本
- 公共⽂文件容易易被覆盖
- 成员沟通成本很⾼高,代码集成效率低下
集中式 VCS
- 有集中的版本管理理服务器器
- 具备⽂文件版本管理理和分⽀支管理理能⼒力力
- 集成效率有明显地提⾼高
- 客户端必须时刻和服务器器相连
分布式 VCS
- 服务端和客户端都有完整的版本库
- 脱离服务端,客户端照样可以管理理版本
- 查看历史和版本比较等多数操作,都不不需
- 要访问服务器器,⽐比集中式 VCS 更更能提⾼高版本管理理效
git特点
- 最优的存储能⼒力力
- ⾮非凡的性能
- 开源的
- 很容易易做备份
- ⽀支持离线操作
- 很容易易定制⼯工作流程
安装git
Git 官方文档地址:
https://git-scm.com/book/zh/v2
macOS 平台 Git 下载地址:
https://git-scm.com/download/mac
Windows 平台 Git 下载地址:
https://git-scm.com/download/win
Linux 平台 Git 下载地址:
https://git-scm.com/download/linux
使用git之前的配置
做好全局配置,方便后续代码管理。
添加配置
git config [–local | --global | --system] user.name ‘Your name’
git config [–local | --global | --system] user.email ‘Your email’
查看配置
git config --list [–local | --global | --system]
区别
local:区域为本仓库
global: 当前用户的所有仓库
system: 本系统的所有用户
设置与清除
$ git config --local
$ git config --global
$ git config --system
设置,缺省等同于 local
$ git config --unset --local user.name
$ git config --unset --global user.name
$ git config --unset --system user.name
使用案例:
安装 git
sudo yum -y install git
测试 git版本
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git --version
git version 1.8.3.1
创建git 仓库
建 Git 仓库
两种方式:
- 用 Git 之前已经有项⽬目代码
cd 项目代码所在的⽂文件夹
git init
- ⽤用 Git 之前还没有项⽬目代码
cd 某个⽂文件夹
git init your_project #会在当前路路径下创建和项⽬目名称同名的⽂文件夹
cd your_project
测试:
[app@iz8vb2knpxzlk1syb8dy3cz git]$ git init my-resp
Initialized empty Git repository in /data/app/git/my-resp/.git/
[app@iz8vb2knpxzlk1syb8dy3cz git]$ ls
my-resp
新建readme文件
vim readme
wq 保存
提交commit
git commit -m ‘test’
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git commit -m 'test'
*** 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: empty ident name (for <app@iz8vb2knpxzlk1syb8dy3cz.(none)>) not allowed
报错: 因为git使用确认身份,根据提示配置global全局变量
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git config --global user.email "globaltest@xx.com"
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git config --global user.name "globaltest"
查看配置变量
git config --list --global
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git config --list --global
user.name=globaltest
user.email=globaltest@xx.com
继续提交commit
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git commit -m 'test'
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# readme
nothing added to commit but untracked files present (use "git add" to track)
报错: 因为readme文件没有加到库中,根据提示使用gti add 添加
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git add readme
继续提交commit,显示提交的信息
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git commit -m 'test'
[master (root-commit) c8eafba] test
1 file changed, 1 insertion(+)
create mode 100644 readme
测试 git status
- 这里新建readme2文件,然后通过git status 查看git仓库状态:Untracked files
- 然后git add 把该文件添加到仓库中,git status状态为:Changes to be committed
- 然后git commit 后,查看git status状态为:nothing to commit, working directory clean
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ vim readme2
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ ls
readme readme2
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# readme2
nothing added to commit but untracked files present (use "git add" to track)
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git add readme2
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: readme2
#
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git commit -m 'test1'
[master 4d1b0c5] test1
1 file changed, 1 insertion(+)
create mode 100644 readme2
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git status
# On branch master
nothing to commit, working directory clean
查看日志
git log
这里看到项目中有用户 yunfeng 330410708@qq.com 两次提交记录,为
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git log
commit 4d1b0c5ac60cb1368a513b4448f3da47fbe5d701
Author: globaltest <globaltest@xx.com>
Date: Mon Feb 25 16:11:40 2019 +0800
test1
commit c8eafbac64d2f5f37074c7fbc0c3a164ca4c5d06
globaltest <globaltest@xx.com>
Date: Mon Feb 25 16:09:18 2019 +0800
test
设置local用户,测试提交log
之前是使用git config --global 设置全局的用户,然后进行commit提交,提交文件的用户是globaltest,在当前测试库下配置local用户后,通过日志查看git commit 提交的是
localtest 用户
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git config --local user.name "localtest"
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git config --local user.email "localtest@xx.com"
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ ls
readme readme2
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ ls
readme readme2
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ ls
readme readme2
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ vim readme3
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git add readme3
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git commit -m "test3"
[master 8c11d13] test3
1 file changed, 1 insertion(+)
create mode 100644 readme3
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ ^C
[app@iz8vb2knpxzlk1syb8dy3cz my-resp]$ git log
commit 8c11d1383641d622822e847e754c5b718f55aabc
Author: localtest <localtest@xx.com>
Date: Mon Feb 25 16:27:27 2019 +0800
test3