概述
此文章基于B站 Git和GitHub详解 视频学习撰写
1.git的工作流程
git
的工作由三个部分组成(附图)
git
仓库(存放用户的提交文件等)- 暂存区(可理解为临时的
git
仓库,存放临时被修改的文件) - 工作目录(我们平时码代码的地方)
再来看下面一张图
上面的图片,体现了用户如何使用git
来管理版本
原理如下:
- 用户先将工作目录的文件先提交至暂存区(存放你临时的改动文件,也可理解为即将提交至
git
仓库的文件) - 确定提交后可将暂存区的文件提交至
git
仓库(安全存放数据的位置,这里有你所有提交过的版本,head
指向最近放入仓库的版本)
注意:为了高效,如果文件没有修改,提交文件夹时,Git
不再重新存储该文件,而是只保留一个链接指向之前存储的文件。重新储存的,都是修改过的文件。
2.安装git
点击进入官网
直接进入官网选择对应自身系统进行下载安装
要注意的是,安装过程中,所有选项都不需要修改,一直点击下一步直到安装完毕
安装完成后,在文件夹中点击鼠标右键,会出现git
的标识
一般我们用到的都是 第二个 Git Bash Here
,点击打开git
,并输入 git --version(查询版本号),如果成功则会正常显示,像下面这样
到这一步,git
就算是成功的安装和运行了
3.使用前配置
git
安装完毕了,之后我们便可以开始配置
第一步:配置使用者姓名和邮箱
git config --global user.name 提交人名字
git config --global user.email 提交人邮箱
第二部:查看配置信息,是否配置成功
git config --list
输入后便可查看配置信息
配置成功
4.Git提交文件步骤
要使用到的方法(步骤)
- 初始化
Git
仓库:git init
- 查看文件的状态:
git status
- 追踪文件(添加需要被管理的文件):
git add 文件名
- 向仓库提交代码 :
git commit -m 提交信息
- 查看提交记录:
git log
第一步:初始化 Git
仓库
第二步:查看项目状态
使用 git status
查看文件夹状态时,弹出了一些指令。下面解读一下
On branch master
:所在分支的位置,目前在mater
(主分支)上No commits yet
:表示当前仓库中现在无提交的代码Untracked files
:未被跟踪的(文件)
而图中的红色字体的文件就是没有被git
管理的文件,而使用git add
就可以使文件被git
管理
再次查看状态,上图绿色的就表示已经被管理的文件
第三步:提交代码
使用git commit -m
后,出现上述情况,表示提交成功。
[master (root-commit) 4a79fd2] 提交注释
:表示提交时的注释1 file changed, 15 insertions(+)
:表示只有一个文件改变,在文件中插入了15
行内容
第四步:查看提交历史记录(git log
)
commit
后面的字符串:代表当前提交的唯一标识Author
:提交人信息Data
:提交信息
5.Git撤销(提交的反向操作)
5.1.git checkout 文件名
当你在功能时,开发到一半,你可以向暂存区中添加已修改的文件,然后回到工作目录继续开发。继续开发的过程中发现代码有问题,这时候就可以利用撤销,将之前暂存区中的文件覆盖工作目录的文件,这样就可以将代码恢复到之前开发到一半的状态。
暂存区的文件覆盖工作目录文件:git checkout 文件名
注意:此指令不会影响暂存区中的文件。
5.2.git rm --cached 文件名
开发过程中,我们有时可能会添加一些测试文件或者以后可以删除的文件到暂存区中,那么这些文件肯定是要删除的,不然就会连着一起提交到
git
仓库中
将文件删除(暂存区):git rm --cached 文件名
从暂存区删除文件后,我们再查看一下文件的状态
状态显示 git.html
被删除
5.3. git reset --hard commitID
将 git
仓库中指定时段的文件状态恢复出来
上图我们先用 git log
查询了提交记录,现在我想要恢复到第一次提交的状态
再使用git rest --hard commitID
,这时候文件状态就更新了
注意:此方法会将恢复之前的提交数据清除,比如说你有四次提交记录,恢复了到第二次的提交时,第三次和第四次的提交记录会被清除。
6.Git 分支
6.1.概述
简单来说,git 中的分支就是一个当前工作目录的副本
git 鼓励大家使用分支
分支的优点就是可以在相同的环境或不同的环境下进行不同的开发
比如说现在需要在同一个文件下开发功能和修改bug,这时就可以利用分支,分开开发。互不影响,提高工作效率。
6.2.分支结构
-
主分支(
master
):第一次向 git 仓库中提交代码时会自动生成 -
开发分支(
develop
):作为开发的分支,基于master
分支创建 -
功能分支(
feature
):作为开发功能的分支,基于开发分支创建 -
其他分支:分支可以灵活运用。储存软件的不同版本等,都可以使用分支。
实际开发中 ** 主分支 一般都是可以向外界发布的代码。
所以开发时需要创建开发分支,在 开发分支 中进行开发,功能完成并且测试完毕后就可以向 ** 主分支 ** 提交代码。同时, 开发分支 也需要一定的稳定,所以在开发不同功能时,也要基于 开发分支 创建不同的 功能分支 **进行开发。这也是企业中常用的开发方式
6.3.基本命令
6.3.1.创建分支
- 查看分支:
git branch
- 创建分支:
git branch 分支名称
- 切换分支:
git checkout 分支名称
现在我们创建一个分支,再查看一下分支
上面的命令中,我们创建了 develop
分支 ,然后再查看了分支信息
可以看到 develop
分支已经出现在了信息中,不过现在依然是选中的 主分支(master
)
下面我们来切换分支
输入命令后,上面提示切换成功了,工作目录后的 master
也切换成了 develop
注意:
- 在切换分支时,当前工作目录上的工作,一定要提交至
git
仓库中(保持工作区的干净)。不然会出现问题 - 在哪个分支上创建分支,那么被创建的分支就是基于当前分支创建的
6.3.2.合并分支
- 合并分支:
git merge 来源分支
在开发分支中的开发任务完成并且测试无误后,便可以向主分支合并
下面我们来向主分支(master
)合并一个分支(develop
)
为了看出效果,我们先向开发分支中创建一个develop.html
文件并提交
提交成功,
注意:创建文件是直接在文件夹中创建,git
无法创建
再切换至主分支
切换完成(这时在分支上添加并提交的develop.html
文件会消失),
接下来使用命令合并分支
合并成功(当前主分支出现develop.html
文件)
注意:合并完成后,被合并的分支并不会消除,我们可以继续在分支上进行开发,若是不需要分支,则可以手动删除分支。
6.3.3.删除分支
- 删除分支:
git branch -d 分支名称
删除成功
这里要注意几点:
-
若在删除分支(
develop
)过程中有文件冲突,那么在主分支(master
)上添加并提交改文件即可 -
删除分支时,当前必须是在其他分支或主分支下
-
若分支未被合并,
git
默认不会删除此分支(为了放止开发人员误删分支)。若是需要强制删除可以使用git branch -D 分支名称
-
如果真的不小心删除了分支,恢复分支的方法:此处链接
6.4.临时保存更改
在使用
git
开发的过程中,有时候我们在当前分支上开发时,突然出现了BUG
需要优先处理。这时我们需要在其他分支上修改BUG
,但是代码在没写完的情况下我们也不想提交。这时就可以临时保存在当前分支上对代码的修改,再切换至其他分支上进行修改BUG
或者其他工作。
储存临时改动:git stash
恢复改动 :git stash pop
实例如下:
上面的指令,我们创建并切换至了develop
分支上
这时,我们在develop
上创建一个 stash.txt
文件。
好了,现在stash.html
文件中的代码并没有编写完毕,但是现在我需要切换到主分支上进行其他工作。这时就可以使用git stash
命令来保存我们对文件的更改。
注意:文件要添加到暂存区中才会生效
上面的命令先将 stash.html
添加至暂存区,之后再使用git stash
命令来保存了分支上的更改,这时分支上的工作环境是干净的。
这时你可以切换至其他分支进行工作。
若是想继续返回分支进行开发时,我们要做的就是切换回分支并使用git stash pop
命令恢复即可,就像下面这样
成功恢复
7.多人协同开发
最后
以上就是顺心电源为你收集整理的git 基本操作的全部内容,希望文章能够帮你解决git 基本操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复