目录
git是分布式版本控制工具,主要用于管理开发过程中的源代码文件。
git功能:代码回溯,版本切换,多人协作,远程备份
git仓库:
1.本地仓库:开发人员电脑上的git仓库
2.远程仓库:服务器上的git仓库
三大指令概念:
1.Commit:提交,将本地文件和版本信息保存在本地仓库
2.Push:推送,将本地仓库的文件和版本信息上传到远程仓库
3.Pull:拉取,将远程仓库文件和版本信息下载到本地仓库
Git GUI Here:打开git图形界面
Git Bash Here:打开git命令行
常见的git代码托管服务:github,gitlab,码云
安装git之后首先要做的是设置用户名称和email地址。
执行下列命令:
- 设置用户信息:
-
- git config --global user.name "shangyi"
-
- Git config --grobal user.email "7734@qq.com"
-
- 查看配置信息:
-
- git config --list
-
-
-
- 注意:
- 上面设置的user.name和user.emile并不是我们在git平台上设置的用户名和密码
- 此处可以任意设置
创建git仓库有两种方式:
- 1.本地初始化一个git仓库
-
- 2.从远程仓库克隆
在本地初始化git仓库步骤:
- 1.在任意目录下创建一个空目录
-
- 2.进入到这个目录中打开git bash
-
- 3.输入git init
从远程仓库克隆:
命令形式:git clone [远程仓库地址]
工作区,暂存区,版本库的概念:
- 版本库:.git隐藏文件夹就是版本库,版本库中存储了许多配置信息,日志信息和文件版本信息等
-
- 工作区:包含.git文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码
-
- 暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也叫做stage。
- 暂存区是一个临时保存修改文件的地方
-
- 关系:工作区添加选择的改变(git add)到暂存区,暂存区提交改变(git commit)到版本库
git工作区中文件的状态:
- untracked未跟踪(未纳入版本控制)
-
- track已跟踪(纳入了版本控制)
-
- 1.Unmodified 未改变状态
-
- 2.Modified 已修改状态
-
- 3.Staged 已暂存状态
注意:这些文件的状态会随着执行的git命令而改变
- git status 查看文件状态
-
- git add 将文件修改加入暂存区
-
- git reset 将暂存区文件取消暂存
-
- git reset --hard 版本号 将暂存区切换到指定版本
-
- git commit -m"备注信息" 将暂存区文件修改提交到版本库
-
- git log 查看日志
- git remote 查看远程仓库
-
- git add 添加远程仓库
-
- git clone 从远程仓库克隆
-
- git pull 从远程仓库拉取
-
- git push 推送到远程仓库
- git remote add
添加一个新的远程git仓库,同时指定一个可以应用的简写 -
- 克隆远程仓库:
-
- git clone [url]
-
- 推送到远程仓库:
-
- git push [remote-name][brnch-name]
-
- 从远程仓库拉取:
-
- git pull [remote-name][brnch-name]
-
-
- 注意:
-
- 如果是本地建立仓库,且仓库中存在文件,此时再从远程仓库拉取文件会报错
- 解决方案是在git pull命令后加入参数 --allow-unrelated-history
使用分支可以把你的工作从开发主线上分离出来,以免影响开发主线。
同一个仓库可以有多个分支,各个分支相互独立,互不干扰。
通过git init命令创建本地仓库会默认创建一个master分支
具体命令:
- git branch 查看本地分支
-
- git branch -r 查看远程分支
-
- git branch -a 查看本地和远程分支
-
- git branch [name] 创建分支
-
- git checkout [name] 切换分支
-
- git push [shortName] [name] 推送至远程仓库分支
-
- eg : git push origin master -f 强制推送到远程master分支
-
- git merge [name] 合并分支
git中的标签指的是某个分支某个时间点的状态。通过标签,可以很方便的切换到标记时的状态。
具体命令:
- git tag 列出所有标签
-
- git tag [name] 创建标签
-
- git push [shortName] [name] 将标签推送到远程仓库
-
- git checkout -b [branch] [name] 检出标签