《GitHub入门与实践》学习笔记(windows)-第4章 通过实际操作学习Git
文章目录
- 一、基本操作
- 1.git init——初始化仓库,目的:得到本地的工作树和仓库
- 2.git status——查看仓库的状态:检查是否git add了
- 3.git add——向暂存区(叫Stage或者Index)中添加文件
- 4.git commit——保存仓库的历史记录
- 注:git commit命令可以将当前暂存区中的文件实际保存到仓库的历史记录中。
- (1)git commit -m “xxxx”操作
- (2)直接输入git commit
- (3)中止提交
- (4)查看提交后的状态
- 5.git log——查看提交日志
- 注:查看的永远是git commit 或者git commit -m的内容
- (1)直接git log
- (3)git log README.md 只显示指定目录、文件的日志
- (4)git log -p README.md 显示文件的改动
- 6.git diff——查看更改前后的差别
- 二、分支操作
一、基本操作
1.git init——初始化仓库,目的:得到本地的工作树和仓库
(1)mkdir和git init初始化仓库
(2)工作树就是.git文件夹,仓库就是mkdir的文件夹
2.git status——查看仓库的状态:检查是否git add了
(a)git status的说明
(b)eg:
3.git add——向暂存区(叫Stage或者Index)中添加文件
注:没有git add的话,用git status查看,就会出现untracked files
注:在git add之前,用git diff head查看本次提交与之前提交的差别
4.git commit——保存仓库的历史记录
注:git commit命令可以将当前暂存区中的文件实际保存到仓库的历史记录中。
(1)git commit -m “xxxx”操作
(2)直接输入git commit
(3)中止提交
如果在编辑器启动后想中止提交,请将提交信息留空并直接关闭编辑器,随后提交就会被中止。
(4)查看提交后的状态
5.git log——查看提交日志
注:查看的永远是git commit 或者git commit -m的内容
(1)直接git log
git log命令可以查看以往仓库中提交的日志。包括可以查看什么人在什么时候进行了提交或合并,以及操作前后有怎样的差别。
说明:
(a) commit 栏旁边显示的“9f129b……”是指向这个提交的哈希值。 Git 的其他命令中,在指向提交时会用到这个哈希值。
(b)Author 栏中显示我们给 Git 设置的用户名和邮箱地址。 Date 栏中显示提交执行的日期和时间。再往下就是该提交的提交信息。
(2)git log --pretty=short 只显示提交信息的第一行
(3)git log README.md 只显示指定目录、文件的日志
(4)git log -p README.md 显示文件的改动
6.git diff——查看更改前后的差别
注:查看工作树、暂存区、最新提交之间的差别。
(1)前提:在README.md文件中写 # Git教程
(2)查看工作树和暂存区的差别
(3)git diff head查看工作树和最新提交的差别
注:在执行git commit之前可以用git diff HEAD命令查看本次提交与上次提交有什么差别,确认完毕后再提交
二、分支操作
(1)分支的解释
(2)分支可以同时高效地进行并行开发
1.git branch——显示分支一览表
2.git checkout -b——创建、切换分支
(1)切换到 feature-A 分支并进行提交(add 和commit操作)
(a)创建名为 feature-A 的分支。
(b)
(c)一定按照下面的步骤来,才会不影响master分支的README.md文件
注:上面所谓的 “才会有下面的结果”:指的是:在master分支查看,在feature-A分支里编辑的README.md,发现并未改变master分支的README.md文件的内容
(2)git checkout master切换到 master 分支
2.特性分支
(1)特性分支的定义
特性分支顾名思义,是集中实现单一特性(主题),除此之外不进行任何作业的分支。
在日常开发中,往往会创建数个特性分支,同时在此之外再保留一个随时可以发布软件的稳定分支。
稳定分支的角色通常由 master 分支担当。
(2)特性分支的好处
3.主干分支
4.git merge——合并分支
(1)首先切换到 master 分支
(2)然后合并 feature-A 分支。
为了在历史记录中明确记录下本次分支合并,我们需要创建合并提交。因此,在合并时加上 --no-ff参数。