python-day96--git版本控制

1、 版本控制工具
            - svn
            - git


2、  git:软件帮助使用者进行版本的管理

3、  git 相关命令

git init     #初始化
    初始化后,会在当前目录自动创建 .git 文件夹,该文件是Git中最重要的文件夹,因为Git相关文件以及版本都将保存在该文件夹中,有了它,就不用担心用好多文件来记录版本了,通过Git命令可以将所有版本保存在
git status   # 查看当前git状态
git log #查看版本库内的所有版本
git config --global user.email "you@example.com" #配置邮箱
git config --global user.name "Your Name" #配置用户名

git add . #把当前目录及子目录里面的所有文件就文件夹加到版本库中

git add templates/xxx.html

git commit -m "具体的描述信息" # 提交到版本库,并填写版本说明,以便以后回滚。描述信息不要瞎写,一定要表述明白这次提交做了什么


git reset --hard +版本的编号     #回滚到指定编号的版本 (向后跳)
git reflag        #(向前跳时)查看版本库的 版本信息
修复bug相关命令:
  方式1:
    git stash           将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原到当前版本未修改过的状态
    git stash list          查看“某个地方”存储的所有记录
    git stash clear         清空“某个地方”
    git stash pop           将第一个记录从“某个地方”重新拿到工作区(可能有冲突),conflict表示与冲突,当有冲突的时候需要手动去修改
    git stash apply +编号    将指定编号记录从“某个地方”重新拿到工作区(可能有冲突)
    git stash drop  +编号    删除指定编号的记录

  方式2:创建分支
    git branch xxx 创建一个xxx分支 (注意创建分支的当前位置,创建的xxx分支会将当前的分支完全的复制一份)
    git branch      查看所有的分支
    git checkout xxx 切换到xxx分支,在切换分支前切记要保存版本
      扩展: master分支只做线上的版本,不允许修改, dev分支只做开发版本
    git merge xxx      将xxx分支与当前的分支进行合并(有可能有冲突)
    git branch -d xxx 删除xxx分支

4、修复bug流程

解决方法一:此时发现bug
    git stash 将当前工作区的修改过的代码暂存到某个地方中
    
    按照原来代码修改bug...
    git add .
    git commit -m 'bug修改完成'

    git stash pop
        - 不产生冲突
        - 产生冲突,手动去解决
        
解决方法二:    
                    
    git branch dev 
    git checkout dev             #在切换分支前切记要保存版本    git add .   +   git commit -m 'xxx'
    # 写代码开发,此时发现bug
    git add .
    git commit -m 'xxx'
    
    git checkout master 
    git branch bug 
    git chekcout bug 
    
    # 修复bug 
    git add .
    git commit -m '紧急修复bug'
    
    git checkout master 
    git merge bug 
    git branch -d bug 
    
    git checkout dev 
    # 继续开发
    git add .
    git commit -m '开发完成'
    
    git checkout master 
    git merge dev(可能有冲突)

 5、常见报错信息:

是因为 你没有保存该分支内修改后的信息引起的

是因为你在推送数据时的版本与云端的版本内容有差别,云端不知道已谁为准,所以报错

6、向线上推送数据

7、从线上获取代码数据  (有可能会有冲突)

7.1

7.2

7.3

8、在从云端代码托管下拉代码的时候以上三种方法的效果是一样的,还有一种 fetch + rebase 方法,那么 fetch + rebase 方法 有什么不同呢?

区别在于在查看下方的节点图的时候

用 fetch + merge 的时候 见下图  (推荐用这种)

而 用fetch + rebase 后:   (当很多人一起开发的时候用rebase比较好)

不出现分叉的结构,看起来比较明了

原文地址:https://www.cnblogs.com/liuwei0824/p/7988315.html