git作用:代码回溯 版本切换 多人协作 远程备份
git仓库:本地仓库:开发人员自己电脑上的Git仓库
原程仓库:远程服务器上的Git仓库
commit:提交,将本地文件和版本信息保存到本地仓库
push:推送,将本地仓库文件和版本信息上传到远程仓库
pull:拉取,将远程仓库文件和版本信息下载到本地仓库
版本库:.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等
工作区:包含.git文件夹的目录就是工作区,也称为工作目录,主要存放开发的代码
暂存区:.git文件夹中有一个index文件夹就是暂存区,也可以叫做stage,暂存区是一个临时保存修改文件的地方
Git常用命令
- 设置用户信息(user.name和user.email可以任意设置)
git config --global user.name "Wuhu"
git config --global user.email "1234567@qq.com"
- 查看配置信息
git config --list
- 获取Git仓库--在本地初始化Git仓库
在任意目录下创建一个空目录作为我们的本地Git仓库,进入这个目录中,点击右键打开Git bush窗口,执行git init
git init
本地仓库操作
- 获取Git仓库--将远程仓库克隆到本地仓库
在任意目录下创建一个空目录作为我们的本地Git仓库,进入这个目录中,点击右键打开Git bush窗口,执行git init
git clone [远程仓库地址]
- 将文件的修改加入暂存区
git add [文件名或者*]
- 将暂存区的文件的取消暂存或切换到指定版本
git reset [文件名]
git reset --hard [commit后面的版本号]
- 将暂存区文件修改提交到版本库
git commit -m "init hello.txt" hello.txt
- 查看日志
git log
远程仓库操作
- 查看远程仓库
git remote -v
添加远程仓库,shortname引用简写(习惯写origin)
git remote add [shortname] [url]
从远程仓库克隆
git clone [url]
从远程仓库拉取,branchname分支名称,master主分支
git pull [shortname] [branchname]
/**
如果当前本地仓库不是从远程仓库拉取,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件时会报错
(fatal:refusing to merge unrelated histories)
git pull --allow-unrelated-histories
**/
推送到远程仓库
git push [shortname] [branchname]
Git工作区中文件的状态
git status
- untracked未跟踪(未被纳入版本控制)
-
tracked已跟踪(被纳入版本控制)
-
Unmodified未修改状态
-
Modified已修改状态
-
Staged已暂存状态
-
本地文件推送到远程仓库步骤
//将文件的修改加入暂存区
git add test.txt
//将暂存区文件修改提交到版本库(本地仓库)
git commit -m "edit text.txt" test.txt
//推送到远程仓库
git push origin master
分支操作
- 查看分支
//列出所有本地分支
git branch
//列出所有远程分支
git branch -r
//列出所有本地分支和远程分支,包括已删除的分支
git branch -a
- 创建分支,name分支名称
git branch [name]
- 切换分支
git che ckout [name]
- 推送至远程仓库分支
git pull [shortname] [name]
- 合并分支
git merge [name]
标签操作
标签是一个静态的概念,里面的文件状态是固定的
分支是一个动态的概念,里面的文件状态可以不断变化
- 查看已有标签
git tag
- 创建标签,name标签名称
git tag [name]
- 将标签推送至远程仓库
git pull [shortname] [name]
- 检出标签,branch新建分支用来指向某个标签
git checkout -b [branch] [name]