how to use git

Git 是一个开源的分布式版本控制系统,与 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

image-20230114162459301

基本概念

工作区

在电脑里能看到的目录

本地版本库

工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库

暂存库

本地版本库里存了很多东西,其中最重要的就是称为 stage(或者叫index)的暂存区,还有 Git 为我们自动创建的第一个分支 main,以及指向 main 的一个指针叫 HEAD

远程版本库

一般指的是 Git 服务器上所对应的仓库,常用的github仓库就是一个远程版本库

常用命令

git clone

从服务器中拉取代码

git branch

创建、重命名、查看、删除项目分支,通过 Git 做项目开发时,一般都是在开发分支中进行,开发完成后合并分支到主干。

git branch 不带参数的branch命令可以查看当前项目分支列表

git branch -m branch/0.0.1 创建一个名为branch/0.0.1的开支

git branch -d branch/0.0.1 删除一个名为branch/0.0.1的开支

git checkout

切换分支

git checkout branch/0.0.1 切换到branch/0.0.1的开支

git status

查看文件变动状态

git add

添加文件变动到暂存区

git add README.md 通过指定文件名 README.md 可以将该文件添加到暂存区;

添加所有文件可用 git add .

git commit

提交文件变动到版本库 git commit -m ‘这里写提交原因’

git push

将本地代码改动推送到服务器

git push origin branch/0.0.1 origin 指代的是当前的git服务器地址,这行命令的意思是把 branch/0.0.1 分支推送到服务器

git pull

将服务器最新代码拉取到本地

git pull origin branch/0.0.1

如果线上代码做了变动,而你本地的代码也有变动,拉取的代码就有可能会跟你本地的改动冲突,一般情况下 Git 会自动处理这种冲突合并,但如果改动的是同一行,那就需要手动来合并代码,编辑文件,保存最新的改动,再通过 git add .git commit -m 'xxx' 来提交合并。

git fetch 是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。 而 git pull 则是将远程主机的最新内容拉下来后直接合并,即: git pull = git fetch + git merge ,这样可能会产生冲突,需要手动解决。

git log

查看版本提交记录,提交记录可能会非常多,按 J 键往下翻,按 K 键往上翻,按 Q 键退出查看

git tag

为项目标记里程碑。当我们完成某个功能需求准备发布上线时,应该将此次完整的项目代码做个标记,并将这个标记好的版本发布到线上,这里我们以 publish/0.0.1 为标记名并发布,当看到命令行返回如下内容则表示发布成功了

git tag publish/0.0.1
git push origin publish/0.0.1

Total 0 (delta 0), reused 0 (delta 0)
To https://github.com/gafish/gafish.github.com.git
* [new tag] publish/0.0.1 -> publish/0.0.1

参考资料

保姆级Git入门教程,万字详解 (qq.com)