最近新转了一个部门,对前端的git操作比较严格,自己学习了一遍,算了解了git的操作流程以及git的一些命令。
1.什么是git?
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。一般来说,git工作流程分为以下几个步骤:
- 克隆 Git 资源作为工作目录。
- 在克隆的资源上添加或修改文件。
- 如果其他人修改了,你可以更新资源。
- 在提交前查看修改。
- 提交修改。
- 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交
2.git有三种状态:
1. 已提交状态(committed):数据已经安全的保存在本地数据库中。
2.已修改(modifed): 修改了文件,但是还没保存到数据库中。
3.已暂存(staged):对修改的文件的当前版本做了标记,让他包含在下次提交的快照当中。
来一张大家的见过的图:
git还有一些区的概念:
- 工作区:就是你敲代码的地方
- 暂存区:就是你到时候想存到仓库的临时地方,提交到git版本库的时候,将整个暂存区一并提交
- git仓库目录:就是本地仓库的意思。
git工作流程:
提交的流程:
1. 进入目录, git status 查看修改的文件。
2. git add . 添加修改文件。之后可以使用git status查看提交的状态,蓝色为已暂存。
这里有一个mac自带的文件,我们不需要,需要把它忽略掉。
可以使用 git reset HEAD --
ok。已经忽略了这个文件。
之后我们开始commit 提交。commit提交有两种情况一种是提交一个新的commit, git commit --m 'new commit'。
还有一种情况一次修改代码太多,需要分多次提交,这时候我们需要在原来的commit基础上增加,不能提交新的commit。如下:
通过commit --amend 可以在上一个commit上添加。no-edit是不修改上次提交的commit内容。
适用场景:
比方说,你的代码已经提交到git库,leader审核的时候发现有个JS文件代码有点问题,于是让你修改,通常有2种方法:
方法1:leader 将你提交的所有代码 abandon掉,然后你回去 通过git reset …将代码回退到你代码提交之前的版本,然后你修改出问题的JS文件,然后 git add xx.java xxx.java -s -m “Porject : 1.修改bug…”
最后通过 git push origin XXX
方法2:
leader不abandon代码,你回去之后,修改出问题的JS文件,修改好之后,git add 该出问题.js
然后 git commit –amend –no-edit,
最后 git push origin HEAD:refs/for/ xxx
当我们想要对上一次的提交进行修改时,我们可以使用git commit –amend命令。git commit –amend既可以对上次提交的内容进行修改,也可以修改提交说明。
还有一种情况,当我们commit --amend的时候,如果上次commit已经合入代码库中,此行你amend的commit已经关闭,在多人开发的情况中你可能会commit到别人的代码上。这是挺麻烦的一个问题。你需要撤销之前提交的commit,然后pull,然后重新提交。
基本的操作如下:
git reset --soft HEAD~1 //回退到前一个版本
git stash save ‘list’ //将当前的改动暂存
git pull --rebase origin xxx //pull远程
解决冲突
git stash pop // 改动pop出来。
git commit -m ' new commit' //重新提交
以上是一些流程,可能和别的公司操作不太一样哦。。