环境配置
-
配置代码提交时的用户信息,名字和邮箱(全局配置)
# 配置提交代码时的用户信息(当前仓库有效) git config user.name "YOU@EXAMPLE.COM" git config user.email "YOUR NAME"
# 配置提交代码时的用户信息(全局配置) git config --global user.email "YOU@EXAMPLE.COM" git config --global user.name "YOUR NAME"
-
查看配置信息
- git config --list 查看所有的配置信息
- git config user.name 查看具体的配置信息
获取Git仓库
-
在本地初始化一个Git仓库
- git init 切换到对用的文件夹下执行该命令
-
从远程仓库克隆
- git clone url 克隆对应的仓库到当前的文件夹下面
工作目录、暂存区以及版本库概念
-
版本库:前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等
-
工作目录(工作区):包含.git文件夹的目录就是工作目录,主要用于存放开发的代码
-
暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方
Git工作目录下文件的两种状态
-
untracked 未跟踪(未被纳入版本控制)
-
tracked 已跟踪(被纳入版本控制)
-
Unmodified 未修改状态
-
Modified 已修改状态
-
Staged 已暂存状态
-
本地仓库操作
- git status 查看文件状态
- git status –s 使输出信息更加简洁
- git add 将未跟踪的文件加入暂存区
- git reset 文件名 将暂存区的文件取消暂存
- git reset --hard f4695 将版本回退到指定位置
- git reflog 查看当前分支的最近几次提交
- git log --pretty=oneline 查看提交历史的简化命令
- git rm 删除文件 鼠标右键删除不会添加到暂存区 上面删除的只是工作区的文件,需要提交到本地仓库
- 将文件添加至忽略列表 需要在工作目录中创建一个名为 .gitignore 的文件
远程仓库的使用
- 查看远程仓库
- git remote
- git remote -v
- git remote show origin
- 添加远程仓库
- git remote add [remoteName] [url]
- 从远程仓库克隆
- git clone [url]
- 移除无效的远程仓库
- git remote rm [remoteName]
- 从远程仓库中抓取
- git fetch [remoteName] [branchName]
- 从远程仓库拉取
- git pull [remoteName] [branchName]
- 推送到远程仓库
- git push [-f] [远端名称 [本地分支名] [:远端分支名] ]
- 如果远程分支名和本地分支名称相同,则可以只写本地分支
- -f 表示强制覆盖
- push 之前需要要pull防止内容不一致
分支
- 查看分支
- git branch 列出所有本地分支
- git branch -r 列出所有远程分支
- git branch -a 列出所有本地分支和远程分支
- 创建分支
- git branch b1 创建了新的分支 并且新分支复制了所在分支提交的所有内容
- 切换分支
- git checkout [branchName]
- git checkout -b [branchName] 切换并创建
- 推送至远程仓库分支
- git push [shortName] [branchName]
- 合并分支
- git merge [branchName] 从当前分支合并其他分支 合并分支只会把其他文件不同的位置合并不会覆盖当前已经有的内容
- 问题:有时候合并操作不会如此顺利。 如果你在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,Git 就没办法合并它们,同时会提示文件冲突。此时需要我们打开冲突的文件并修复冲突内容,最后执行git add命令来标识冲突已解决
- 删除分支
- git branch -d b1 删除本地分支
- git push origin –d branchName 删除远程仓库地址
标签
- 列出已有的标签
- git tag 列出标签
- git show 查看tag信息
- 创建新标签
- git tag [tagName]
- 将标签推送至远程仓库
- git push [remote] [tag]
- 检出标签
- git checkout -b [branch] [tag]
- 删除标签
-
git tag -d [tag] 删除本地
-
$ git push origin :refs/tags/[tag] 删除远程
-
git checkout -b [branch] [tag]
-
- 删除标签
- git tag -d [tag] 删除本地
- $ git push origin :refs/tags/[tag] 删除远程