1.Git起步和配置

2020-01-15  本文已影响0人  darren911

什么是版本控制

实现跨区域多人协同开发
追踪和记载一个或者多个文件的历史记录
组织和保护你的源代码和文档
并行开发、提高开发效率
跟踪记录整个软件的开发过程
减轻开发人员的负担,节省时间,同时降低人为错误

版本控制分类

什么是Git

常见名词

image

5)、索引(Index)
索引是暂存区的另一种术语。
6)、签入(Checkin)
将新版本复制回仓库
7)、签出(Checkout)
从仓库中将文件的最新修订版本复制到工作空间
8)、提交(Commit)
对各自文件的工作副本做了更改,并将这些更改提交到仓库
9)、冲突(Conflict)
多人对同一文件的工作副本进行更改,并将这些更改提交到仓库
10)、合并(Merge)
将某分支上的更改联接到此主干或同为主干的另一个分支
11)、分支(Branch)
从主线上分离开的副本,默认分支叫master
12)、锁(Lock)
获得修改文件的专有权限。
13)、头(HEAD)
头是一个象征性的参考,最常用以指向当前选择的分支。
14)、修订(Revision)
表示代码的一个版本状态。Git通过用SHA1 hash算法表示的ID来标识不同的版本。
15)、标记(Tags)
标记指的是某个分支某个特定时间点的状态。通过标记,可以很方便的切换到标记时的状态。

Git三种状态

Git命令行(建议使用bash、PowerShell)

Bash基本操作命令
1)、cd : 改变目录。
2)、cd . . 回退到上一个目录,直接cd进入默认目录
3)、pwd : 显示当前所在的目录路径。
4)、ls(ll): 都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更为详细。
5)、touch : 新建一个文件 如 touch index.js 就会在当前目录下新建一个index.js文件。
6)、rm: 删除一个文件, rm index.js 就会把index.js文件删除。
7)、mkdir: 新建一个目录,就是新建一个文件夹。
8)、rm -r : 删除一个文件夹, rm -r src 删除src目录, 好像不能用通配符。
9)、mv 移动文件, mv index.html src index.html 是我们要移动的文件, src 是目标文件夹,当然, 这样写,必须保证文件和目标文件夹在同一目录下。
10)、reset 重新初始化终端/清屏。
11)、clear 清屏。
12)、history 查看命令历史。
13)、help 帮助。
14)、exit 退出。
15)、#表示注释

Git配置

Git 自带一个 git config 的工具来帮助设置控制 Git 外观和行为的配置变量。 这些变量存储在三个不同的位置:
/etc/gitconfig 文件: 包含系统上每一个用户及他们仓库的通用配置。 如果使用带有 --system 选项的 git config 时,它会从此文件读写配置变量。(Win:C:\Program Files\Git\mingw64\etc\gitconfig) 
~/.gitconfig 或 ~/.config/git/config 文件:只针对当前用户。 可以传递 --global 选项让 Git 读写此文件。(Win:C:\Users\Administrator\.gitconfig)
当前使用仓库的 Git 目录中的 config 文件(就是 .git/config):针对该仓库。适用于特定git项目的配置。(Win:C:\gitProject) --local当前项目
每一个级别覆盖上一级别的配置,所以 .git/config 的配置变量会覆盖 /etc/gitconfig 中的配置变量
#产看所有级别配置
git config --list
#查看系统config
git config --system --list
#查看当前用户(global)配置
git config --global  --list
#查看当前仓库配置信息
git config --local  --list
#查看某一项配置
git config user.name
#帮助命令
git help [config]
git config [--local|--global|--system]  section.key value
[--local|--global|--system]  #可选的,对应本地,全局,系统不同级别的设置
section.key #区域下的键
value #对应的值
git config [--local|--global|--system] --unset section.key
设置用户邮箱
$ git config --global user.name "Jorly"
$ git config --global user.email "lijinhe@321dh.com"
默认文本编辑器
$ git config --global core.editor vim
启用着色设置
$ git config --global color.ui true
设置行尾结束符
$ git config --global core.autocrlf false
$ git config --global core.safecrlf true
注意: 每一个级别覆盖上一级别的配置。如果你想要检查配置,可以使用 git config --list 命令来列出所有配置,也可以通过 git config <key> 命令来检查某一项配置。

设置别名
由于 Git 并不会在你输入部分命令时自动推断出你想要的命令,如果不想每次都输入完整的命令,可以通过 git config 为每一条命令设置一个别名,比如:

$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status
这意味着,当要输入 git commit 命令时,只需要输入 git ci 命令即可。而且创建别名对于解决一些技术问题非常必要,比如,为了解决取消暂存文件的易用性问题而添加的别名:

$ git config --global alias.unstage 'reset HEAD --'
这会使下面的 2 个命令等价:

$ git unstage fileA
$ git reset HEAD -- fileA
可以看出,Git 只是简单地将别名替换为对应的命令,如果你想要执行外部命令,则可以在命令前面加入 ! 符号,比如 git config --global alias.visual '!gitk',这将使 git visual 定义为 gitk 的别名。

Git的理论流程

工作区域

Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:


image

工作流程

git的工作流程一般是这样的:
1、在工作目录中添加、修改文件;
2、将需要进行版本管理的文件放入暂存区域;
3、将暂存区域的文件提交到git仓库。
因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)


image

图解教程

有一份图解教程比较直观:
图解教程中文版

image
上一篇 下一篇

猜你喜欢

热点阅读