码迷,mamicode.com
首页 > 其他好文 > 详细

Git协同开发操作+github

时间:2019-08-07 22:50:37      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:还原   sql   image   通配   can   字符   更新   log   托管   

Git

  git是一个用于帮助用户实现版本控制的软件

第一阶段:在美国进修的日子

1.命令:

  git  init

  git  status      查看当前文件夹的状态   全部红色

  git  add+文件名  对指定文件进行版本控制  当前文件名变绿色

  git  add .        对指定文件夹下的所有文件及子目录进行版本控制  所有变绿

  git  commit -m ‘详细的描述信息‘   创建提交记录

  git  log         查看所有提交记录   当前版本之前上一个版本的信息,之后的就没有     

  git  reflog     提交版本的信息更详细一点 

  git reset --hard 提交记录(版本号)

技术图片

第二阶段:在开发游戏杀SX的功能,开发的过程中临时需要修复已上线项目的bug问题或者新功能到来时

  方式一:

    git  stash  全部暂存到神奇的地方(拿走)

    git  stash pop  从神奇的地方取回来再进行开发新的功能

       git stash  只保存那些红色的文件,表示那些没有被add commit那些文件

    注意:当拿走这些文件的时候,又在本地修改再加新东西的时候,在pop回来默认它要合并,这时候要产生冲突,解决冲突手动解决就行了。

    git stash             将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原到当前版本未修改过的状态

    git stash list        查看“某个地方”存储的所有记录

    git stash clear     清空“某个地方”

    git stash pop       将第一个记录从“某个地方”重新拿到工作区(可能有冲突)

    git stash apply     编号, 将指定编号记录从“某个地方”重新拿到工作区(可能有冲突) 

    git stash drop      编号,删除指定编号的记录

  方式二:

    git branch -m+分支    创建并切换到指定分支

    git branch      查看有那些分支

    git branch dev       创建dev分支,表示在当前分支copy一份代码到dev分支

    git branch bug       创建bug分支

    git branch -d bug     删除bug分支

    git checkout dev    当前分支切换到dev分支

    想合并的时候,首先要切换(跳)到自己想合并的分支比如说跳到master分支

    git merge dev     把dev分支合并到master了 将指定分支合并到当前分支

    如果两个分支同时修改同一行代码,这时候可能会发生冲突,手动解决。 

如果代码出现问题?

  1.新创建一个bug分支,然后进行bug处理,处理完毕之后,合并到master分支。

  2.删除bug分支

  3.回到之前分支继续开发

第三阶段:在家开发写了一段代码存在.git文件下也就是本地,我自己开的公司在香格里拉酒店租了一层楼。第二天去上班,又不想带家里边的电脑。

     需要一个代码托管的网站:github/Bitbucket/码云

     自己搭建创建代码托管的网站:gitlab

  在家操作:

    1.在github上建立仓库:仓库名最好要和本地项目名称一样

    2.git remote add origin https://github.com/......./...git  (origin代表的就是建立github仓库名的地址)

    3.git push origin master  把本地master分支推到别名叫origin地址上  (看.git下叫config文件有对应关系)

      1)在仓库上只有master分支

      2)在家有两分支git branch  dev和master

      3)我在家是在dev分支上开发的,所以我也要把dev分支也要推到github仓库上去

      4)在家在这里最好切换到dev分支上再推,git checkout dev   git push origin dev 这时候在github仓库上就有两分支了master和dev

  在公司香格里拉大酒店操作:

    1.克隆git clone https://github.com/......./...git

    2.在这里要进入文件夹 cd 进去

    3.在香格里拉本地再创建一个dev分支  git branch dev

    4.再切换到dev分支, git checkout dev  在这里copy的是master分支的代码

    5.git pull origin dev 拉github仓库的dev分支的代码

  如果在公司没提交代码到github仓库上?1.py

    到了家之后?git pull origin dev 发现没有1.py,在家继续开发2.py功能git push origin dev

    第二天到了公司?git pull origin dev---->要出现Merge合并记录

    在公司继续开发,添加3.py, git push origin dev 

    回家拉代码 git fetch origin dev  但是1.py 3.py 没拉下来,还没在本地这时候在版本库

    git merge origin/dev  这时候本地就有1.py 2.py 3.py文件

    如果不想分叉:使用git fetch origin dev + git rebase origin/dev

技术图片

 git rebase的作用?

  如果在公司写的代码忘记提交了,回家继续开发新的功能,第二天到公司用git pull 或者 git fetch+git merge可能会出现分叉,如果想保持提交记录的整洁,就用git fetch + git rebase 最终的作用就是保持提交记录的整洁。

第四阶段:多人协同开发

      1.允许他人操作代码

        a.合作者模式

        b.创建组织模式

      2.分支

        -master

        -dev

        -开发者1的分支

        -开发者2的分支

      3.规则

         一起合并

         合并间隔时间 1-2天合并一次

  遇到的问题:别人在之前提交过,我再去提交要报错,在这个时候就要先把别人提交的代码拉下来,可能产生冲突。发生冲突自己修改,修改完再push提交上去

      4.做codereview 从新看下代码

        a.组长

        b.组长之下稍微可以的人

        创建review分支:符合业务组长去审查,如果逻辑没问题,用工具检测只是跑性能,语法有没有问题,pep8遵从

第五阶段:给别人代码贡献力量

      先Fork

      再pull request

 

其它:

  a.不用反复输入用户名密码登录

    https:

    git remote add origin https://用户名:密码@github.com/......./...git

    ssh:

    git@github.com:*****/*****.git

    生成一对公钥私钥:

    ssh-key命令:下有两个ssh-keygen.exe  ssh-keyscan.exe文件

    再执行ssh-keygen.exe  记住保存的位置一直回车下去

    找到公钥放在github settings中即可

  b.忽略文件

    vim .gitignore 中可以写忽略的文件,比如:*.sql,*.pyc

    忽略文件也要提交到仓库中,方便其它人拉取下来再做提交操作    

    以斜杠“/”开头表示目录;   

    以星号“*”通配多个字符;   

    以问号“?”通配单个字符   

    以方括号“[]”包含单个字符的匹配列表;   

    以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

    各种忽略https://github.com/github/gitignore/blob/master/Python.gitignore

  c.版本  

    git tag -a v1.0 -m ‘版本介绍‘ 本地创建Tag
    git show v1.0 查看
    git tags -n 查看本地Tag
    git tag -l ‘v1.4.2.*‘ 查看本地Tag,模糊匹配
    git tag -d v1.0 删除Tag
    git push origin :refs/tags/v0.2 更新远程tag
    git checkout v.1.1 切换tag
    git fetch origin tag V1.2

    git push origin --tags
    git pull origin --tags
    git clone -b v1.0  git@github.com:*****/*****.git

 

    

 

 

 

 

 

 

 

    

    

 

    

    

 

  

   

Git协同开发操作+github

标签:还原   sql   image   通配   can   字符   更新   log   托管   

原文地址:https://www.cnblogs.com/Alexephor/p/11311331.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!