zoukankan      html  css  js  c++  java
  • git在项目中常用命令和项目流程中涉及到步骤分析

    GIT

    git的组成:分布式,版本控制,软件

    svn是集中式版本控制,而git是分布式版本控制

    • 问价拷贝
    • 本地版本控制
    • 集中式版本控制
    • 分布式版本控制
    第一阶段:生成版本,扩展功能,版本回滚

    命令:

    1.git init ----- 初始化生成.git文件进行管理
    2.git status  ------检测当前文件的文件状态,也显示当前文件夹内的文件名称,管理后的文件是绿色,未管理的是红色,也可以进行文件检测,检测文件是否被修改,如若修改则直接变成红色.
    3.git add 文件名称  ---- 进行管理文件
    4.git add .   ----管理当前文件夹所有未管理的文件
    5.git log   -----查看版本记录
    6.git  --version  ------检查版本号
    7.git commit -m "描述信息"-----生成版本
    

    git三大区域:

    工作区:
    1.已经管理的和修改/新增文件
    暂存区:git add .  表示把工作区文件提交到暂存区
    版本库:git commit  表示把暂存区文件提交到版本库
    

    回滚:

    git reset --hard  版本号
    git reflog  ------用于查看的所有的操作及版本过程
    

    工作区内调度:

    git checkout -- <file>  修改文件变成管理文件,剔除修改内容
    git reset HEAD <file>  ---把问价从暂存区返回到工作区
    

    第二阶段:分支

    线上出BUG时,创建分支修复BUG,然后合并到主分支上.

    git branch  ----- 用户所处在的分支
    git branch dev   ---- 创建新分支dev
    git checkout dev  ---切换到dev分支
    git merge dev   ---合并分支dev到master主分支
    CONFLICT (content): Merge conflict in git_tes/templates/index.html
    可能会带有冲突,这时须手动解决.
    git status ----查看改动
    git commit -m "备注"
    英文状态下q表示退出
    git branch -d 分支名  ----删除分支
    

    工作流

    不在master分支上开发
    

    github:代码仓库,gitlab

    1.注册账号
    2.创建仓库
    3.本地代码推送远程仓库
    

    github做代码托管

    1.创建仓库
    2.推送代码
    git remote add origin https://github.com/PythonerIron/gittest0912.git
    git push -u origin master
    也可以推送其他的分支
    git push -u origin dev
    3.克隆代码
    git clone https://github.com/PythonerIron/gittest0912.git
    已经clone了所有分支,但是只显示master分支,可以直接Git checkout dev进行操作
    

    怎么去开发?

    1.创建分支dev
    2.切换到dev分支
    3.将master分支代码复制git merge master
    4.进行开发 touch a1.py
    5.git add. 
    6.git commit -m "01day"本地生成控制版本
    7.git push -u origin dev
    8.回家继续,远端更新 
    9.git checkout dev
    10.git pull origin dev
    11.开发,提交代码
    
    git pull origin dev 等价于
    git fetch origin dev
    git merge origin/dev
    

    rebase(变基)

    #将多个记录整合成一个记录
    1.git rebase -i  版本号-----将最新的版本号和当前rebase后的版本号之间合并.
    2.git rebase -i HEAD~3   整合三条
    注意:合并是不要合并已经push的文件
    
    #分支合
    git log --graph --pretty=format:"%h %s"画图式显示
    *   f52d0b5 Merge branch 'master' into dev
    |
    | * a050c14 master test01
    * | f408a0f dev test
    |/
    * 4ecd59b dev new.py
    * 27ca536 dev分支上线
    * 7a4e949 04
    * 885d61d 03
    * 94ed499 02
    * 1a87782 01
    分支合并,在dev merge master,然后在master merge dev
    
    
    #分叉
    家:v2   公司:v1  如若在公司拉代码v2会造成分叉,此时,
    git fetch origin dev
    git rebase origin/dev
    
    
    #注意事项:git rebase产生冲突,解决冲突
    git  add .
    git rebase --continue
    
    

    beyond compare文件对比,快速解决冲突

    在git中配置
    git config --local merge.tool 名字bc3
    git config --local mergetool.path '安装目录E:Beyond Compare 4'
    git config --local mergetool.keepBackup false
    应用beyond compare解决冲突
    git mergetool
    

    怎么多人开发?

    每个人都有自己的分支上进行开发,然后没两天就要合并一下处理冲突.
    

    检查代码review

    gitflow工作流

    tag(打标签)master分支上打标签

    git tag -a v1 -m "第一版本"------版本v1  和版本的信息描述
    git push origin  --tags   -----将版本推送到github
    创建dev并且切换到dev分支
    git checkout -b dev 这是已经在自己的电脑上了
    还需要将自己本地的代码推送到远程,github才会显示这个分支
    git push origin dev
    
    

    github中组织的权限settings

    默认是只读
    开发人员克隆代码
    git clone 地址
    在dev分支上继续开一个分支
    开发完成时,需要代码review
    

    测试过程

    git checkout -b release
    git push origin release
    git branch -d release  删除release分支
    

    运维人员下载代码做上线

    git clone -b v2 地址
    

    怎么在开源的代码贡献自己力量

    1.在github中fork待贡献代码
    2.类似于二次开发,在自己的仓库进行修改
    3.给源代码作者提交修复bug的申请
    

    配置文件

    配置用户名和密码
    
    1.在当前的项目生效,在其他的项目就不生效
    	项目的配置文件在.git/config
    git config --local user.name 'ashley"
    git config --local user.email "ashely@qq.com"
    2.全局配置文件,所有的项目均可通用
    	项目文件配置在 ~/.gitconfig
    git config --global user.name 'ashley"
    git config --global user.email "ashely@qq.com"
    3.系统配置文件,需要有root权限
    	项目文件配置在 /etc/.gitconfig
    git config --system user.name 'ashley"
    git config --system user.email "ashely@qq.com"
    

    免密登录

    1.URl实现
    原来的地址:https://github.com/Qingdaodianye/QD-.git
    免密登录:https://用户名:密码@github.com/Qingdaodianye/QD-.git
    2.通过ssh实现
    ssh地址:git@github.com:Qingdaodianye/QD-.git
    	2.1自己生成公钥和私钥,默认声称在当前根目录下的~/.ssh/id_rsa.pub(公钥)和id_rsa(私钥)
    	ssh-keygen
    	2.2拷贝公钥内容设置在github的settings中
    	2.3在git本地中配置ssh地址
    	git remote add origin git@github.com:Qingdaodianye/QD-.git
    

    git忽略文件

    遇见不希望被管理的文件时,我们应该忽略这样的文件

    1.创建.gitignore文件
    vim .gitignore
    写入不需要管理的文件名例如a.py
    也可以写入自己.gitignore
    2.
    *.h
    !a.h
    files/
    *.py[c/d/ds]
    

    任务管理

    • issues

      用于问题汇总,避免重复回答,也有bug管理

    • wiki

      写一些项目相关的东西文档之类的,用于之后有新人进来便于理解项目

  • 相关阅读:
    Maven插件之portable-config-maven-plugin(不同环境打包)
    redis
    MySQL之group_concat 配合substring_index查询
    Jmeter执行测试计划同时监听服务器性能PerfMon Metrics Collector
    【转】证书和编码
    [转]SSL/TLS协议运行机制的概述
    OC—MVC框架图解
    安卓intent
    day8---多线程socket 编程,tcp粘包处理
    day7---socket
  • 原文地址:https://www.cnblogs.com/Zhao159461/p/11517478.html
Copyright © 2011-2022 走看看