目录
1. 安装Git for windows
此命令行工具下载地址:https://git-for-windows.github.io/
直接点击进入,然后download即可;
安装完后,在任意文件目录下, 右键打开看到Git Bash Here和Git GUI Here表示安装成功;
点击Git Bash Here打开Git的命令行窗口。
2. Git的用户名和邮箱配置
Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识
git config --global user.name "用户名"
git config --global user.email "邮箱"
在C:\Users\admin路径下的.gitconfig文件中可以看到保存的用户名和邮箱信息
--global表示当前用户(全局)
--system表示所有用户(本系统)
--local表示本地配置(当前目录),默认用的是local
3. 常用Git的命令行操作
(1)创建Git仓库
在项目文件夹内,执行命令
git init
当前目录下,出现.git隐藏文件夹,说明Git仓库创建成功
(2)获取远程Git仓库
克隆远程Git仓库,使用命令(其中url在github中直接copy)
git clone <url>
(3)提交文件
通常提交文件前,先检查下修改了什么内容,当前Git目录下各文件的状态 git status
git status
然后再提交文件到暂存区(也叫缓存区) git add
git add 文件名 #发送指定file到缓冲区
git add *.txt #发送通配符.txt,当前目录下所有的txt文件到缓冲区
git add 目录 #发送目录路径下的所有文件到缓冲区
然后再将缓冲区文件提交到本地库 git commit
git commit -m "备注信息"
从缓存区中,恢复文件到工作区 git checkout -- 文件名(注意--前后都有空格)
(4)查看文件提交记录
查看历史记录 git log 文件名
$ git log aaa.txt
commit 9cf17f1132482eab823e2fe9c8353df79f585389 (HEAD -> master)
Author: kevin <[email protected]>
Date: Wed Jan 2 19:18:14 2019 +0800
aaa第二次提交
commit a0932d80e643e5fad86ada2c08e7f3114d54eb62
Author: kevin <[email protected]>
Date: Wed Jan 2 19:17:21 2019 +0800
aaa第一次提交
查看历史记录,只用一行表示 git log --pretty=oneline 文件名
$ git log --pretty=oneline aaa.txt
9cf17f1132482eab823e2fe9c8353df79f585389 (HEAD -> master) aaa第二次提交
a0932d80e643e5fad86ada2c08e7f3114d54eb62 aaa第一次提交
查看操作的版本记录HEAD git reflog 文件名
$ git reflog
9cf17f1 (HEAD -> master) HEAD@{0}: commit: aaa第二次提交
a0932d8 HEAD@{1}: commit (initial): aaa第一次提交
可以看到对于1-aaa.txt这个文件进行了两次操作,版本号分别是0和1
(5)状态回退、数据回滚操作
git reset --hard HEAD^:回退到上一次提交状态
$ git reset --hard HEAD^
HEAD is now at a0932d8 aaa第一次提交
此时,aaa.txt文件中的内容,回滚至第一次提交时候的状态
git reset --hard HEAD~n:回退n次操作
git reset --hard 版本号:穿越至第n个版本,版本号通过git reflog 文件名去查看
$ git reset --hard HEAD@{1}
HEAD is now at 0f32c20 aaa第三次提交
此时,文件aaa.txt变更为第三次提交时的状态
ps:通过状态回滚机制,发现Git保存的是一系列文件的快照。
4. Git工作区、暂存区和本地库的概念
•工作区(Working Directory):就是电脑本地硬盘目录
•暂存区(stage):一般存放在"git目录"下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)
•本地库(Repository):工作区有个隐藏目录.git,它就是Git的本地版本库
5. Git的分支命令行操作
(0)Git分支的概念
Git分支是轻量级的,速度很快,只记录索引信息;分支只是一个指针,指向逐渐推进的commit节点
所谓分支,就是创建一个指针,指向特定的commit节点,也就是文件的某个快照,不同的快照对应的文件内容是不一样的,也可以说是文件的版本是不一样的,不同的分支,就指向不同版本的文件
通过不同分支,完成不同模块的独立操作,最后再通过合并,将分支合并到master上
ps:附上一篇关于Git分支讲解很好的博客:对于Git分支的理解
日常工作中一般三个主要分支:master分支,develop开发分支,hotfix是bug修理分支
(1)创建分支
git branch :分支名
git branch -v :查看分支
$ git branch -v
* master 0f32c20 aaa第三次提交
分支1 0f32c20 aaa第三次提交
分支2 0f32c20 aaa第三次提交
*表示当前分支,后面是当前分支记录的commit节点的备注信息,也就是当前文件的版本
(2)切换分支
git checkout 分支名
$ git checkout 分支1
Switched to branch '分支1'
git checkout -b 分支名:创建同时切换分支
$ git checkout -b 分支3
Switched to a new branch '分支3'
(3)解决合并文件时的冲突
如果合并存在冲突,即同一文件同一位置的代码,当分支和master两种版本合并时,系统无法判断应该保留哪个版本,需要手动修改
合并文件后,系统出现CONFLICT关键字,后缀出现MERGING表示出现冲突
git diff 分支名1 分支名2:比较两个分支的文件,查看发生冲突的文件和冲突内容
修改完毕后,再次git add 文件名、git commit -m “备注信息”提交文件,后缀MERGING消失,说明冲突解决完成
(4)合并分支
先切换到主干 git checkout master
再将分支合并到master上,即将分支的文件版本,更新到master上 git merge 分支名
(5)删除分支
git branch -d 分支名