zoukankan      html  css  js  c++  java
  • Git

    控制系统

    是否依稀记得你的毕业论文?

     1 毕业论文_初稿.doc
     2 毕业论文_修改1.doc
     3 毕业论文_修改2.doc
     4 毕业论文_修改3.doc
     5 毕业论文_完整版1.doc
     6 毕业论文_完整版2.doc
     7 毕业论文_完整版3.doc
     8 毕业论文_最终版1.doc
     9 毕业论文_最终版2.doc
    10 毕业论文_死也不改版.doc
    11 ...

    是否还记得老师让你重新自己写的项目?

    1 blog1
    2 blog2
    3 blog3
    4 blog4
    5 ...

    以上是使用文件或文件夹进行版本管理,以上方式有缺点:

      多个文件,保留所有版本时,需要将多个文件保存在本地

      协同操作,多人协同操作时,需要将文件发来发去...

      容易丢失,被删除意味着永远失去(可以选择网盘)

    为了解决上述问题,应运而生了版本管理工具:

      VSS-- Visual Source Safe(不用:在修改时别人不能用)

      SVN --CollabNet Subversion(修改提交后会将之前的版本覆盖)

      Git

      ...

    版本管理工具都一般包含客户端和服务端

      客户端(用户):本地编写内容,向服务端获取或提交内容

      服务端(网盘):保存所有版本的文件

    二.Git

    1.什么是Git?

    分布式版本控制系统

    2.安装

    http://git-scm.com/

    3.命令

    a.切换需要上传的目录路径:

    b.基本命令

     1 git init 
     2 初始化 生成.git文件,用于保存git相关所有信息
     3 git status
     4 查看状态
     5 git add ./文件名
     6 添加到暂存区
     7 git commit -m '提交信息'
     8 提交
     9 
    10 配置:
    11 git config --local user.name '名称'
    12 git config --local user,email '邮箱'
    13 
    14 其他:
    15 git ls
    16 git ls-tree 查看版本中所有文件
    17 git ls-files -s 查看暂存区和版本中所有文件

    c.回滚

    1 git log
    2 查看历史记录
    3 git reset --hard '特殊字符串'
    4 回滚操作
    5 git reflog
    6 恢复查看历史记录
    7 git reset --hard '特殊字符串'
    8 再次回滚到原始状态

    d.1 stash

     1 git stash 
     2 将当前已经做过的修改,保存到一个临时地方
     3 git stash pop
     4 将临时地方内容重新放回工作区
     5 
     6 修复bug时:
     7 git stash
     8 修复bug
     9 git add
    10 git commit -m '修复bug'
    11 
    12 git stash pop
    13 无冲突:过
    14 有冲突:手动解决
    15 以下示例:
    16 '''
    17 <<<<<<< Updated upstream
    18 修复bug
    19 =======
    20 开发到一半
    21 ============
    22 >>>>>>> Stashed changes
    23 '''
    24 
    25 
    26 git add
    27 git commit -m '修复bug'

    d.2 分支

     1 master 
     2 线上版本
     3 dev
     4 开发功能分支
     5 bug
     6 修复bug分支
     7 
     8 
     9 git branch dev
    10 创建分支(注意所在当前分支)
    11 git checkout dev
    12 进入分支
    13 
    14 '''
    15 开发功能中
    16 ...
    17 git add
    18 git commit -m ''
    19 '''
    20 
    21 出现bug
    22 git checkout master
    23 git branch bug
    24 git checkout bug
    25 '''
    26 bug修复中
    27 ...
    28 git add
    29 git commit -m ''
    30 '''
    31 
    32 bug和master合并
    33 git checkout master
    34 git merge bug
    35 无冲突:过
    36 有冲突:手动解决
    37 
    38 
    39 dev和master合并
    40 同上

    d.3合并流程图

    4.整体图示

    5.远程仓库

    以github示例:

    a1注册账号

    a.2创建仓库代码

    b.应用场景

    公司和家都要进行开发工作

    b.1 公司办公

    1 git remote add origin git@github.com:lyhw/ceshi.git
    https://github.com/lyhw/ceshi.git
    (SSH[生成一公钥,不需要每次连接都输入用户名及密码]/HTTPS(需要每次连接都输入用户名及密码)) 2 ##本地连接远程仓库 3 git checkout master 4 git push origin master 5 ##推送

    b.2 下班在家

     1 git clone git@github.com:lyhw/ceshi.git
     2 克隆代码
     3 cd www
     4 切换目录
     5 git branch dev origin/dev
     6 创建dev分支并连接远程仓库dev分支
     7 git checkout dev
     8 写代码
     9 ...
    10 
    11 git add .
    12 git commit -m 'cc'
    13 git push origin dev
    14 提交数据

    b.3第二天到公司

     1 git checkout dev
     2 git fetch origin dev
     3 将代码从远程仓库下载到本地版本库
     4 git pull origin dev
     5 将代码从远程仓库下载到本地工作区
     6 
     7 开发功能1:
     8 git add .
     9 git commit -m 'mmm'
    10 git push origin dev
    11 
    12 开发功能2:(忘记提交,下班回家)
    13 git add .
    14 git commit -m 'mmm'

    图示:

    b.4 在家

    1 git brabch dev
    2 git pull origin dev
    3 
    4 开发功能3:
    5 git add .
    6 git commit -m 'mmm'
    7 git push origin dev

    b.5 公司

    由于之前开发的功能2没有提交,所有需要先将功能3下载到本地来,二者合并,看是否有冲突;

    无冲突:过;

    有冲突:手动解决;

    完结后重新提交并上传至远程仓库.

    6.协同开发

    a.创建一个team和仓库,并邀请你的成员;

    请在这里查看你的组信息

    请在此处查看你所在组的仓库信息

    b.打开仓库就可以看到成员提交的文件啦~~

     1 git clone git@github.com:lyhw/ceshi.git
     2 先把文件克隆到本地
     3 
     4 修改后再提交
     5 git add .
     6 .......
     7 git pull origin master
     8 上传前一定要先pull一下!!
     9 看是否会发生冲突
    10 git push origin master

    注意:创建team者要设置成员权限,否则成员上传不成功;

    7.其他

    fork

    1.打开你想要fork的文件,fork到你自己的仓库

    2.使用命令,克隆到本地

    1 git clone git@github.com:hiasaka/test.git

    3.修改文件后提交到自己的仓库

    4.如果你想要让文件拥有者也更改,需要创建一个 request,对方同意就可以了

  • 相关阅读:
    Vivian's Problem UVA
    Prime k-tuple UVA
    M
    Make a Crystal UVA
    Cryptography Reloaded UVALive
    Gauss Prime UVA
    Discrete Square Roots UVALive
    The Bells are Ringing UVALive
    Huge Mods UVA
    指数循环节
  • 原文地址:https://www.cnblogs.com/asaka/p/7298649.html
Copyright © 2011-2022 走看看