zoukankan      html  css  js  c++  java
  • GIT

     Git

    什么是git?
              git 是一个免费,开源的版本控制软件
    GitHub与git的是什么关系
              git是版本控制软件
              GitHub是项目代码托管的的平台,借助的是git来管理项目代码

    Git
         版本控制,各行各业都在用
    版本控制工具
           ----svn
         ----git
        git可以帮助使用者进行版本的管理

    Git步骤

    • 1、 在新建的项目下右击选中 Git Bash
    • 2、 命令:1.git init 初始化
    • 2.git config --global user.email ''
    • 3.git config --global user.name ''
    • 4.git add . 提交
    • 5.git commit -m '描述信息'
    • 6.git log 查看提交记录
    • 页面有改动,执行下面
    • 7.git add templates/index.html
    • 8.git commit -m '写具体改动的内容'
    • 不想要上一次改动的执行以下
    • 9.git reset --hard 版本号
    • 如果有想要上一次功能
    • 10.git reflog 版本号
    • 11.git reset --hard 版本号
    • 12.git status 查看Git当前状态,如:那些文件被修改过、那些文件还未提交到版本库等。

    出现bug,修复bug

    方案一:stash

          stash用于将工作区发生变化的所有文件获取临时存储在“某个地方”,将工作区还原当前版本未操作前的状态;stash还可以将临时存储在“某个地方”的文件再次拿回到工作区。

    特别的:执行 git stash pop 命令时,可能会遇到冲突,因为在紧急修复bug的代码和通过stash存储在“某个地方”的代码会有重合部分,所以执行 git stash pop 时候就会出现冲突,有冲突解决冲突即可。

    stash常用的操作:

    • 12.git stash 暂是存储
    • 13.git stash pop 取出存储的内容 (可能有冲突)
    • 14.git stash list 查看“某个地方”存储的所有记录
    • 15.git stash clear 清空“某个地方”
    • 16.git stash apply 将指定编号记录从“某的地方”重新拿到工作区(可能有冲突)
    • 17.git stash drop 删除指定编号的记录

    方案二:branch

        分支学习:branch称为分支,默认仅有一个名为master的分支。一般开发新功能流程为:开发新功能时会在分支dev上进行,开发完毕后再合并到master分支。

    • 1、创建一个修复bug的分支:git branch bug ,bug分支是在master分支上建的     即:拷贝一份当前所在分支代码到新分支
    • 2、查看一共有几个分支 : git branch
    • 3、跳转到bug分支:git checkout bug              git status   查看状态
    • 4、跳转到master分支:git branch master
    • 5、创建一个修复bug的分支:git branch dev #只做开发的版本现在就有三个分支了,每个分支都是不一样的,bug修复完了,现在就要合并在master上了。
    • 6、master和bug分支合并:git merge bug
    • 7、删除bug分支:git branch -d bug
    • 8、继续开发,切到dev:git branch dev
    • 9、开发完毕,master和dev合并:git merge dev
    • 合并的时候可能出现冲突,可能不出现,出现冲突了就得手动解决
    MacBook-Pro-4:pondo wupeiqi$ git branch dev                 # 创建新分支,即:拷贝一份当前所在分支代码到新分支
    MacBook-Pro-4:pondo wupeiqi$ git checkout dev               # 切换到dev分支
    MacBook-Pro-4:pondo wupeiqi$ vim app01/views.py             # 开发功能
    MacBook-Pro-4:pondo wupeiqi$ git status                     # 查看状态,即:在dev分支修改了app01/views.py文件
    On branch dev
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory)
    
        modified:   app01/views.py
    
    no changes added to commit (use "git add" and/or "git commit -a")
    MacBook-Pro-4:pondo wupeiqi$ git add .                      # 将修改文件添加到版本库的暂存区
    MacBook-Pro-4:pondo wupeiqi$ git commit -m '新功能开发完毕'    # 将暂存区的内容提交到当前所在分支,即:dev分支
    [dev 32b40cd] 新功能开发完毕
    file changed, 2 insertions(+) 
    MacBook-Pro-4:pondo wupeiqi$ git checkout master             # 切换回master分支 
    Switched to branch 'master'
    MacBook-Pro-4:pondo wupeiqi$ git merge dev                   # 将dev分支内容合并到master分支
    Updating 0972f4b..32b40cd
    Fast-forward
     app01/views.py | 2 ++
    file changed, 2 insertions(+)
    
    一般流程示例(上图)
    方案二修复bug
    MacBook-Pro-4:pondo wupeiqi$ git branch                     # 当前在master分支
    * master
     
     
    MacBook-Pro-4:pondo wupeiqi$ git branch dev                 # 创建dev分支用于开发新功能
     
    MacBook-Pro-4:pondo wupeiqi$ git checkout dev               # 切换到dev分支
    Switched to branch 'dev'
     
    MacBook-Pro-4:pondo wupeiqi$ vim app01/views.py             # 开发新功能到一半,需要紧急修复Bug
     
    MacBook-Pro-4:pondo wupeiqi$ git add .
     
    MacBook-Pro-4:pondo wupeiqi$ git commit -m '新功能开发一半'
    [dev b3ac2cb] 新功能开发一半
     1 file changed, 2 insertions(+)
     
     
     
     
    MacBook-Pro-4:pondo wupeiqi$ git checkout master            # 切换回master分支
    Switched to branch 'master'
     
    MacBook-Pro-4:pondo wupeiqi$ git branch bug                 # 创建bug分支
     
    MacBook-Pro-4:pondo wupeiqi$ git checkout bug               # 切换到bug分支
    Switched to branch 'bug'
     
    MacBook-Pro-4:pondo wupeiqi$ vim pondo/settings.py          # 修改bug
     
    MacBook-Pro-4:pondo wupeiqi$ git add .                      # 提交bug
     
    MacBook-Pro-4:pondo wupeiqi$ git commit -m '紧急修复bug'      # 提交bug
    [bug f42f386] 紧急修复bug
     1 file changed, 1 insertion(+), 1 deletion(-)
     
     
    MacBook-Pro-4:pondo wupeiqi$ git checkout master            # 切换会master
    Switched to branch 'master'
     
    MacBook-Pro-4:pondo wupeiqi$ git merge bug                  # 将bug分支内容合并到master分支,表示bug修复完毕,可以上线
    Updating 0972f4b..f42f386
    Fast-forward
     pondo/settings.py | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
     
     
     
     
    MacBook-Pro-4:pondo wupeiqi$ git checkout dev               # 切换到dev分支,继续开发新功能
    Switched to branch 'dev'
     
    MacBook-Pro-4:pondo wupeiqi$ vim app01/views.py             # 继续开发其他一半功能
     
    MacBook-Pro-4:pondo wupeiqi$ git add .                      # 提交新功能
     
    MacBook-Pro-4:pondo wupeiqi$ git commit -m '继续开发完成'      # 提交功能
    [dev c0bfb27] 继续开发完成
     1 file changed, 1 insertion(+)
     
    MacBook-Pro-4:pondo wupeiqi$ git checkout master            # 切换回master分支
    Switched to branch 'master'
     
    MacBook-Pro-4:pondo wupeiqi$ git merge dev                  # 将dev分支合并到master分支
    Merge made by the 'recursive' strategy.
     app01/views.py | 3 +++
     1 file changed, 3 insertions(+)
    View Code

    4、修复Bug流程:

    • git branch dev
    • git checkout dev

    # 写代码

    • 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

    5.家里(将代码推送到github):

           先注册一个github

    git可以是用该URL进行向远程推送版本信息或获取版本信息

    将代码推送到github

    1. git add .
    2. git commit -m 'xx'
    3. git remote add origin https://github.com/WuPeiqi/greenlu.git
    4. git push origin master

    6.公司( 新公司第一次获取代码):
      方式一
         git clone https://github.com/WuPeiqi/greenlu.git 直接克隆
      方式二
        git init
        git remote add origin https://github.com/WuPeiqi/greenlu.git
        git pull origin master 直接拿回来
     方式三
       git init
       git remote add origin https://github.com/WuPeiqi/greenlu.git
       git fetch origin master 拿到分支上了
       git merge origin/master 合并在一起

       git fetch origin master, git merge origin/master这的两句相当于git pull origin master 这一句
    7.、阶段三:
              协同开发:
               -----项目协作者
               -----组织

    8、注意事项:
           --- .gitignore 文件

    9、用户认证:
          由于Git和Github交互操作可能会很频繁,那么一定少了用户授权的操作,为了防止每次操作重复输入用户名和密码,Git提供了两种解决方法:
              1.密钥:
                       首先创建一对秘钥 ssh-keygen -t rsa,然后将 id_rsa.pub (公钥)内容拷贝到github中,日后操作无需再输入用户名和密码。
                       注意:这种方式需要使用GIt中 git@github.com:WuPeiqi/xxxxx.git 格式地址。

     使用Git下载指定分支命令为:git clone -b 分支名仓库地址

      使用Git下载v.2.8.1分支代码,使用命令:git clone -b v2.8.1 https://git.oschina.net/oschina/android-app.git

      如下图所示:

      

    解释一下这个命令:-b表示要从分支下载,v2.8.1就是具体的某个分支的名称,https://git.oschina.net/oschina/android-app.git这是app源码的git仓库地址

    协同开发是从分支上clone下来,提交到clone下来的的那个分支上,如下:

  • 相关阅读:
    url路由配置及渲染方式
    django类视图介绍与类视图装饰器
    什么是数据类型
    python代码的编写和运行
    python环境搭建
    python教程(目录)
    编程语言概念
    面向对象入门
    编程语言
    Tornado框架实现图形验证码功能
  • 原文地址:https://www.cnblogs.com/mengqingjian/p/7993541.html
Copyright © 2011-2022 走看看