git详解

作者: hlchengzi | 来源:发表于2020-07-27 16:08 被阅读0次

    不能直接将代码提交到项目当中,需要新建自己的分支然后

    提交流程图

    [图片]

    本地开发

    1、拷贝项目到本地

    git clone [-b 指定分支]项目git地址

    2、切到master主干

    git checkout master

    3、拉取最新主干代码

    git pull或者git pull -rebase

    4、check新开发分支

    git checkout -b [myfeature]

    [myfeature]为开发人员自己的分支名

    注:check分支前一定要确保master分支有pull远程最新代码

    5、开发完成后,将代码加入git管理

    git add .

    6、代码提交本地仓库

    git commit -m ['注释'](首次提交)

    git commit --amend(第二次及以后提交,减少commit的次数,将本次修改的合并额到上次分支里面)

    注释规范参考

    7、代码提交远程仓库

    git push --set-upstream origin[myfeature](关联远程仓库,如果当前分支与多个主机存在追踪关系,则使用该方法推送,后面为本地分支,前面是所要推送的分支)

    注:在push之前可能分支会有冲突,需要git pull拉取远程最新代码

    8、再次修改代码提交

    重复5-7步

    注:再次提交时,第7步为git push -f。

    其他注意地方:

    1,在push前可能有分支会有冲突

    git push originfeature/xxx 然后在gitlab提交merge request后,常常会配到有冲突需要解决。

      为了保证自己分feature只有自己的功能,所以不要把release分支直接rebase或者merge到自己的feature里。

      建议操作:

      git checkout release/sprintWxx

      git checkout -b feature/sprintWxx

      git merge feature/xxx

      解决冲突

      git push originfeature/sprintWxx

      提交merge request 把 feature/sprintWxx合入release/sprintWxx

      删除feature/sprintWxx

    2,提交了commit,但是有错误,需要修改

    2.1git reset版本回退

    git reset commitID

    git reset HEAD~1,回退到前一个版本

    git reset —mixed commitID回退到某个版本,会将暂存区内容和已提交内容恢复到未暂存状态(默认)

    git reset —soft commitID回退到某个版本,不清空暂存区,已提交内容恢复到暂存区

    git reset —hard commtID回退到某个版本,清空暂存区,已提交内容也清空

    2.2git amend

    git amend的原理同git commit相同,不过后面在提交的时候会不会生成commit,会将本次的修改合并到上一次的修改当中。

    其他常用命令

    命令 作用

    git log 查看提交日志

    git branch 查看分支

    git merge 合并其他分支代码到当前分支

    git stash 当本地修改不想提交时缓存当前修改(配合git stash pop等命令使用)该命令使用时会有坑,谨慎操作。

    git branch -d temp 删除temp分支

    git fetch 将远程主机的最新内容拉到本地

    git rebase 类似git merge在有冲突时比git merge少一步提交,分支更加整洁。

    提交测试

    Merge Request(gitlab)orPull Request(github)

    可以指定review对象,提交request后,和对应review人一起确认。

    feature/xxx → release/xxx

    8、merge有问题需修改

    回到热爱feature分支,拉取新代码git rebase,然后修改,最后使用git amend提交代码,git push

    .gitignore,为git检查时候忽略的文件

    gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

    解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:

    git rm -r --cached .

    git add .

    git commit -m 'update .gitignore'

    相关文章

      网友评论

          本文标题:git详解

          本文链接:https://www.haomeiwen.com/subject/qlgzlktx.html