一、GIT基础概念
1.git的三个区域
- 工作区
- 暂存区
- git仓库
2.git三种状态
- 已修改modified
- 已暂存staged
- 已提交committed
注意:
- 工作区的文件被修改了,但还没有放到暂存区,就是已修改状态。
- 如果文件已修改并放入暂存区,就属于已暂存状态。
- 如果 Git 仓库中保存着特定版本的文件,就属于已提交状态。
二、Git配置
1.配置用户信息
设置自己的用户名和邮件地址。因为通过 Git 对项目进行版本管理的时 候,Git 需要使用这些基本信息,来记录是谁对项目进行了操作:
- git config --global user.name “用户名”
- git config --global user.email “邮箱”
2.全局配置文件
通过 git config --global user.name 和 git config --global user.email 配置的用户名和邮箱地址,会被写 入到 C:/Users/用户名文件夹/.gitconfig 文件中。这个文件是 Git 的全局配置文件,配置一次即可永久生效。
3.检查配置信息
- 查看所有的全局配置信息
- git config --list --global
- 查看指定的全局配置项
- git config user.name
- git config user.email
4.获取帮助信息
- 打开完整的帮助手册
- git help config
- 获取简明的帮助手册
- git config -h
三、Git基本操作
1.获取git仓库的两种方式
- 将尚未进行版本控制的本地目录转换为git仓库
- 从其他服务器克隆一个已存在的git仓库
2.从现有的目录中初始化仓库
- 在项目目录中,鼠标右键打开“Git Bash”
- 执行== git init ==命令将当前目录转化为git仓库
git init 命令会创建一个名为 .git 的隐藏目录,这个 .git 目录就是当前项目的 Git 仓库,里面包含了初始的必要 文件,这些文件是 Git 仓库的必要组成部分。
3.工作区中文件的4种状态
- 未跟踪(Untracked)
- 未修改(Unmodifide)
- 已修改(Modefide)
- 已暂存(Staged)
Git操作就是让工作区的文件处于未修改的状态
4.检查文件的状态
- git status
在状态报告中可以看到新建的 index.html 文件出现在 Untracked files(未跟踪的文件) 下面。
- git status -s或git status --short
未跟踪文件前面有红色的 ?? 标记,例如:
5.跟踪新文件
- git add index.html
git add主要有如下 3 个功效: ① 可以用它开始跟踪新文件 ② 把已跟踪的、且已修改的文件放到暂存区 ③ 把有冲突的文件标记为已解决状态
此时再运行== git status ==命令,会看到index.html 文件在 Changes to be committed 这行的下面,说明已被跟踪,并处于暂存状态: 以精简的方式显示文件的状态: 新添加到暂存区中的文件前面有绿色的 A 标记
6.提交更新
- git commit -m
其中 -m 选项后面是本次的提交消息,用来对提交的内容做进一步的描述: 成功提交后再检查文件状态 证明工作区中所有的文件都处于未修改的状态,没有任何文件需要被提交。
7.对以提交的文件进行修改
修改了工作区中 index.html 的内容之后,再次运行git status和 git status -s命令,会看到如下的内容: 修改过的、没有放入暂存区的文件前面有红色的 M 标记,说明已跟踪文件的内容发生了变化,但还没有放到暂存区。
8.暂存已修改的文件
工作区中的 index.html 文件已被修改,如果要暂存这次修改,需要再次运行== git add ==命令 再次运行 git commit -m "更新了index.html"文件
9.撤销对文件的修改
- git checkout – index.html
所有的修改会丢失,且无法恢复!危险性比较高,请慎重操作! 撤销操作的本质:用 Git 仓库中保存的文件,覆盖工作区中指定的文件。
10.向暂存区一次添加多个文件
- git add .
使用如下的命令,一次性将所有的新增和修改过的文件加入暂存区
四、Git的其他基本操作
- 取消暂存的文件 git reset HEAD 文件名
- 跳过暂存区直接提交到git仓库 git commit -a -m “描述信息”
- 移除文件 git rm -f 文件名(从git仓库和工作区同时移除)git rm --cached 文件名(只从git仓库移除,保留工作区)
- 忽略文件
创建一个名为 .gitignore 的配置文件
① 以 # 开头的是注释 ② 以 / 结尾的是目录 ③ 以 / 开头防止递归 ④ 以 ! 开头表示取反 ⑤ 可以使用 glob 模式进行文件和文件夹的匹配(glob 指简化了的正则表达式)
# 忽略所有的 .a 文件
*.a
# 但跟踪所有的 lib.a文件,即便在前面忽略了.a文件
!lib.a
# 只忽略当前目录下的TODO文件,不忽略subdir/TODO
/TODO
# 忽略任何目录下的build的文件
build/
# 忽略 doc/notes.txt, 但不忽略 doc/server/arch.txt
doc*.pdf
- 查看提交历史
git log(所有历史) git log -2(最近两条历史) git log -2 --pretty=oneline(在一行显示最近两条) git log -2 --pretty=format:“%h | %an | %ar | %s”(在一行显示最近两条,并自定义输出格式)
五、github
1.生成ssh key
① 打开 Git Bash ② 粘贴如下的命令,并将 your_email@example.com 替换为注册 Github 账号时填写的邮箱: ? ssh-keygen -t rsa -b 4096 -C “your_email@example.com” ③ 连续敲击 3 次回车,即可在 C:\Users\用户名文件夹.ssh 目录中生成 id_rsa 和 id_rsa.pub 两个文件
2.检测ssh key是否配置成功
ssh -T git@github.com
3.克隆远程仓库
git clone 远程仓库地址
六、git分支
- master主分支:作用是:用来保存和记录整个项目已完成的功能代码。
- 功能分支
1.查看分支列表
git branch 注意:分支名字前面的 * 号表示当前所处的分支。
2.创建新分支
git branch 分支名称
3.切换分支
git checkout 分支名称
4.分支的快速创建和切换
-b表示创建新分支
git checkout -b 分支名称
5.合并分支
需先切换到主分支master上操作 git checkout master git merge 分支名称
6.删除分支
需要先切换到其他分支上操作 git branch -d 分支名称
7.查看远程仓库所有分支列表
git remote show 远程仓库名称
8.从远程仓库下载分支到本地
git checkout 远程分支名
如果需要重命名 git checkout 本地分支名 远程仓库名/远程分支名
9.拉取远程分支最新代码
git pull
10.删除远程分支名
git push 远程仓库名 --delete 远程分支名
|