Git学习记录
文章目录
- 一、版本控制工具
- 1.1、集中式版本控制工具
- 1.2、分布式版本控制工具
- 二、Git安装与常用命令
- 2.1、Git环境配置
- 2.2、基础操作指令
- 2.2、分支
- 2.2.1、基本指令
- 2.2.2、合并冲突
一、版本控制工具
1.1、集中式版本控制工具
集中式版本控制工具,版本库是集中存放在中央服务器的,team里每个人work时从中央服务器下载代码,是必须联网才能工作,局域网或互联网。个人修改后然后提交到中央版本库。
举例:SVN和CVS
1.2、分布式版本控制工具
分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样工作的时候,不需要联网了,因为版本库就在你自己的电脑上。多人协作只需要各自的修改推送给对方,就能互相看到对方的
修改了。举例:Git。
Git工作流程图:
- clone(克隆): 从远程仓库中克隆代码到本地仓库。
- checkout (检出):从本地仓库中检出一个仓库分支然后进行修订。
- add(添加): 在提交前先将代码提交到暂存区。
- commit(提交): 提交到本地仓库。本地仓库中保存修改的各个历史版本。
- fetch (抓取) : 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。
- pull (拉取) : 从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于fetch+merge。
- push(推送) : 修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库。
二、Git安装与常用命令
2.1、Git环境配置
安装完成后,右键会出现这两个选项:
- Git GUI:Git提供的图形界面工具。
- Git Bash:Git提供的命令行工具。
安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息。
查看git所有配置信息:
git config -l清除历史命令:
clear查看用户配置:
git config --global --list设置用户名:
git config --global user.name "用户名"设置邮箱:
git config --global user.email 邮箱
2.2、基础操作指令
1.桌面上随便建一个文件夹:
2.进入文件夹,右键->git bash,执行git init
,就创建了一个本地仓库
接下来就可以尝试git的各种命令了,下图是从右向左看的,仓库是本地仓库:
git add
:工作区 --> 暂存区git add .
:将所有修改加入暂存区git commit
:暂存区 --> 本地仓库git commit -m '注释内容'
:提交暂存区内容到本地仓库的当前分支git status
:查看的修改的状态(暂存区、工作区)git reset --hard commitID
:版本切换(commitID 可以使用git log
指令查看)git log
:查看提交记录
如上图,有两次commit,想回到第一次commit后的状态,就执行命令,此时回到了第一次commit后的状态(图中的git -log是给一长串命令起的别名)。如果又想回到第二次commit后的状态,可以用git refllg
命令查看提交记录,然后执行git reset --hard commitID
就可以了。
一般我们总会有些文件无需纳入Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以在工作目录中创建一个名为 .gitignore
的文件(文件名称固定),列出要忽略的文件模式。
2.2、分支
几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的Bug修改、开发新的功能,以免影响开发主线。
2.2.1、基本指令
git branch
:查看本地分支git branch 分支名
:创建本地分支
git checkout 分支名
:切换分支
git checkout -b 分支名
:直接切换到一个不存在的分支(创建并切换)git merge 分支名称
:合并分支
2.2.2、合并冲突
当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解决冲突。master和dev分支都有file01文件,master分支上写入update count = 2
,dev分支上写入update count = 3
,此时将dev合并到master就会出行冲突:
- 处理文件中冲突的地方
- 将解决完冲突的文件加入暂存区(add)
- 提交到仓库(commit)