Git工作流程个人理解哦!!

1,894 阅读3分钟

最近新转了一个部门,对前端的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'        //重新提交

以上是一些流程,可能和别的公司操作不太一样哦。。