前言
Git工具是我们在进行团队合作中必不可少的工具,是必须要熟练使用的工具。
一、Git是什么?
Git是分布式版本控制系统(Distributed Version Control System,简称DVCS)。
这里我们就需要对分布式版本控制系统有一个了解,分布式就是指
可以有很多个结点进行操作,而不是局限于一者;版本控制系统,就是指一个具体的内容,它可以有很多的更新,这时候就产生了很多的版本,而只需要通过这个工具来完成各个版本的控制即可。
二、Git的使用
1.工作流程
一般来说,我们会先从远程仓库中将里面的文件全部克隆到本地的仓库中,然后在该文件(工作区)中进行数据的增删改查等操作后,在放入到暂存区中。
2.Git命令
环境配置
设置用户信息
git config–global user.name <“itcast”>
git config–global user.email <“hello@itcast.cn”>
查看配置信息
git config–list
git config user.name
通过以上命令设置的信息会保存在~/.gitconfig文件中
尖括号里的内容都是可以自己写的。
获取Git仓库
在本地初始化一个Git仓库
git init初始化一个本地仓库
从远程仓库克隆
git clone 远程仓库网址
在进行Git使用的过程中我们一定要重视:工作目录、暂存区及版本库概念。
版本库:
前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等。
工作目录(工作区):
包含.git文件夹的目录就是工作目录,主要用于存放开发的代码
暂存区:
.git文件夹中有很多文件,其中一个index文件就是暂存区,也可以叫stage。暂存区是一个临时保存修改文件的地方
Git工作目录下文件的两种状态
未跟踪
untracked(未被纳入版本控制)
已跟踪(tracked(被纳入版本控制))
Unmodified(未修改状态)
Modified(已修改状态)
Staged(已缓存状态)
本地仓库操作
- 查看文件状态:git status(git status -s 会更简洁)
- 加载到暂存区:git add <文件名>
- 将文件从暂存区加载出去:git reset <文件名>
- 将暂存区的文件修改提交到本地仓库中:git commit -m “操作备注”
- 删除文件(只是删除了操作目录中的):git rm <文件名> 提交: git commit -m “日志”
- 将文件添加到忽略列表中,需要建立一个名为.gitignore的文件,然后在里面添加文件即可
- 查看日志记录:git log
远程仓库的使用
- 查看远程仓库
查看已经配置的远程仓库服务器:git remote [-v]命令,它会列出指定的每一个远程服务器的简写。如果已经克隆了远程仓库,那么至少应该能看到origin,这是Git克隆的仓库服务器的默认名字 - 添加远程仓库
git remote add <设置名称> <远程仓库的网址URL> - 从远程仓库克隆
git clone [URL] - 移除无效的远程仓库
git remote rm 远程仓库名(从本地的仓库去掉,但远程的仓库并没有被删除) - 从远程仓库中抓取与拉取
5.1 抓取:git fetch:是从远程仓库获取最新版本到本地仓库,不会自动合并(merge) 合并(git merge 仓库名/master)
前提:git init初始化文件夹;在抓取前必须添加上远程仓库git remote add URL
5.2 拉取:git pull 仓库名 分支名(master) 是从远程仓库获取最新版本到本地仓库,会自动合并
前提:git init初始化文件夹;在抓取前必须添加上远程仓库git remote add URL
注意:如果本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库中拉取文件的时候会报错(fatal:refusing to merge unrelated histories),解决此问题可以在git pull 命令后加入参数–allow-unrelated-histories
:wq退出编辑器 - 推送到远程仓库
git push [remote-name] (仓库名) [branch-name](分支)
Git标签
标签是指某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态
- 列出已有的标签
git tag:列出已有标签 - 查看tag信息
git show 标签名称 - 创建新标签
git tag 标签名<v0.1> - 将标签推送至远程仓库
git push 仓库名 标签名 - 检出标签
新建一个分支
git checkout -b [分支名][标签名]
注意:跳转到该标记时间点的内容 - 删除标签
删除本地标签:
git tag -d 标签名
删除远程标签:
git push origin:refs/tags/标签名
总结
主要说了一些关于Git运用,但是在真正使用的时候,会有更好的工具使用,但是它们的实现原理,还是这些命令来实现的。