一般工作流程如上
常用操作:
1.1 暂存:
git add <path>
1.2 提交:
git commit
1.3 拉取、拉取合并
git fetch
将远端仓库数据拉取到本地仓库,主要是 将远程仓库所包含分支的最新commit-id记录到本地文件
比如,远端的数据比本地多两个版本,fetch会将最新版本的版本ID写到本地仓库,但是,远端的文件修改并没有拉取到工作区(workspace) ,它只是拉取最近提交的信息出来,通过这个可以让我们知道本地比远端落后几个版本。git fetch通常很少去使用,因为在实际使用中会使用一个有GUI的客户端工具,并不需要敲命令。这里介绍git fetch命令以及其他命令主要是为了了解 Git 的工作流程
1.4 推送:
git push
用于将本地仓库中的更改推送到远程仓库
推送到指定的远程仓库和分支:
git push origin main
推送所有本地分支:
git push --all
推送所有标签(tags):
git push --tags
rejected****错误:通常是因为远程分支比本地分支有更新,可能需要先拉取远程更改并解决冲突。non-fast-forward****错误:通常需要进行合并或变基操作。
git pull --rebase
git push
1.5 查看状态:git status
git status 是 Git 中一个非常有用的命令,用于显示当前工作目录和暂存区的状态。这有助于了解哪些文件被修改了、哪些文件被暂存了、以及哪些文件是未跟踪的。
1.6 查看历史:git log
2.逆向操作
3.本地仓库整理操作
4.分支操作
版本管理的标准流程:
Master : 稳定压倒一切,禁止尚 review 和测试过的代码提交到这个分支上,Master上的代码是可以随时部署到线上生产环境的。
Develop :开发分支,我们的持续集成工作在这里,code review过的代码合入到这里,我们以下要讲的BUG fix和feature开发都可以基于develop分支拉取,修改完之后合入到develop分支。
Feature :功能开发和change request的分支,也即我们每一个feature都可以从devlop上拉取一个分支,开发、review和测试完之后合入develop分支。
Hotfix :紧急修改的分支,在master发布到线上出现某个问题的时候,算作一个紧急布丁。从master分支上拉取代码,修改完之后合入develop和master分支。
Release :预发布分支,比如0.1、0.2、1.12版本,我们一般说的系统测试就是基于这些分支做的,如果出现bug,则可以基于该release分支拉取一个临时bug分支。
Bug : bug fix的分支,当我们定位、解决后合入develop和Release分支,然后让测试人员回归测试,回归测试后由close这个bug。
4.2 查看分支
git branch
创建分支有两种方式:
git branch 分支名
git checkout -b 分支名
切换分支也有两种方式:
git checkout 分支名
git switch 分支名
合并分支有两个命令:
-
git merge。 -
git rebase,不推荐使用。git rebase不仅可以合并提交,还可以合并分支