how to use git
Git 是一个开源的分布式版本控制系统,与 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
基本概念
工作区
在电脑里能看到的目录
本地版本库
工作区有一个隐藏目录 .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