• 版本管理_git


    百度 icode

     

    /**
     * @file  公用函数
     * @author v_koujianfeng
     */

     

    1. 设置 sshkey

     

    2. 在本机克隆

    3. 设置关闭一些不必要的代码提交规则

    4. git checkout -b dev

    5. git checkout -b dev_kjf

     

    6. git pull origin dev_kjf

    7. git add .

    8. git commit -m 'first commit'

    9. git push origin HEAD:refs/for/dev_kjf

    10. 去评审看,检查不通过则重复 6-10 的步骤,没错误了再相关人员打分

    11. 合并代码到相关分支: 在 dev 分支 执行 git merge dev_kjf ----是将 dev_kjf 的代码 合并到 dev

     

    git

    世界上最好的版本管理工具,分布式版本控制系统。

    林纳斯-托瓦斯,自由主义教皇(git、linux)

    git 不管理空文件夹

     

    对比于 SVN

     mkdir XX        创建一个空目录 XX 指目录名

    pwd         显示当前目录的路径
    cat xx         查看 xx 文件内容

    git rm xx         删除 xx 文件 之后要 commit


    git init         把当前的目录变成可以管理的 git 仓库,生成隐藏的 .git 文件夹
    git add xx         把 xx 文件添加到暂存区
    git commit -m "xx"         提交文件 -m 后面的是注释
    git status         查看仓库状态
    git log         查看历史记录
    git reset --hard HEAD^         往上回退一个版本
    git reflog         查看历史记录的版本号 id
    git checkout -- xx         把 xx 文件在工作区的修改全部撤销
    git remote add origin https://github.com/xxxxx/a.git         关联一个远程库
    git push -u origin master         把(第一次要用 -u,以后不用)当前 master 分支推送到远程库
    git clone https://github.com/xxxxx         从远程库中克隆
    git checkout -b dev         创建 dev 分支 并切换到 dev 分支上
    git branch         查看当前所有的分支
    git checkout master         切换回 master 分支
    git merge dev         在当前分支合并 dev 分支
    git branch -d dev        删除 dev 分支
    git branch xxx         创建分支 xxx
    git remote         查看远程库信息
    git remote -v         查看远程库的详细信息
    git pull origin master        将远程库的更新拉取到本地来
    git push origin master        git 会把 master 分支推送到远程库对应的分支上

    • 安装:
    • 配置环境变量
    • Git 环境的默认路径是通过 HOME 环境变量还指定的
    • Git 的全局配置文件默认在系统用户 home 目录下(如:C:UsersAdministrator,此处Administrator为当前登录用户名)
    • 分别打开 Git 安装目录下的 cmd 目录下的 gitk.cmd 文件和 etc 目录下的 profile 文件
    • HOME ---- %HOMEDRIVE%%HOMEPATH%
    • HOMEDRIVE ---- C:
    • HOMEPATH ---- UsersAdministrator
    • SystemRoot ---- C:WINDOWS
    • windir ---- C:WINDOWS
    • USERPROFILE ---- C:UserAdministrator
    • bash 配置:

    git config --global user.name 'RyenToretto'

    git config --global user.email '18273727925@qq.com'

    git config user.name

    git config user.email

    • 基本操作

    git status        查看当前项目状态

    • 分支链接

    git remote        不带参数,列出已经存在的远程分支

    git remote -v        等同于上图命令

    git remote add kjf git://github.com/paulboone/ticgit.git        创建一个别名 kjf 代替 长串的地址

    git fetch kjf        抓取所有 kjf 有的,但本地仓库没有的信息,字串 kjf 指代对应的仓库地址

    • 内容差异对比

    git diff        工作区暂存区 的文件之间的差异对比

    git diff --cached        版本区暂存区 文件之间的差异对比

    git diff master        工作区版本区 文件之间的差异对比

    • 日志 和 版本

    git log        日志 和 版本号,HEAD 表示当前正在使用的分支,还有每次提交的哈希值

    git reflog        精简版的 日志 和 版本

    • 版本回退

    git checkout -- index.html        用暂存区指定文件替换工作区的指定文件 (危险)

    git checkout HEAD index.html        用版本库中的指定文件替换 暂存区和工作区 的文件 (更危险)

    git rm --cached index.html        删除暂存区的指定文件

    git reset --hard HEAD        把暂存区清空,然后把版本库中的内容 copy 到 暂存区

    git reset --hard HEAD^        回退到最近一次的版本

    git reset --hard 70d1707        回退到指定的 70d1707 版本

    • 删除被 git 管理的文件

    git rm -rf a.txt

    git rm -rf test

    • 分支(常见面试题

    git branch -d tags        删除指定分支

    git checkout -b tags        新建分支(拷贝自主分支),并切换到分支

    git checkout master        切换到 主分支 master (由 .git 切换项目文件)

    git checkout tags        切换到 tags 分支 (由 .git 切换项目文件)

    git branch        显示 所有分支 和 区别出 当前分支

    git diff tags master        显示 tags 分支 和 主分支 master 的有差异文件的 文件内容差异

    git diff master tags        显示两个分支之间,有内容差异的文件列表

    git diff master tags a.txt        显示 tags 分支 和 主分支 master 指定文件的 文件内容差异

    git merge tags        (在目标分支执行) 将 tags 分支合并到 目标分支____可能引发冲突(同一文件同一位置内容冲突)

    如果产生冲突,会显示 (master | MERGing)

    冲突文件如下显示

    处理完成以后,正常操作提交,会发现  (master | MERGing) ----> (master)

    • 局域网服务器,项目版本控制

    git init        初始化一个仓库(最好在一个空文件夹下面执行初始化仓库)____线下仓库

    编码并提交,然后在 GitHub 新建一个仓库,复制新仓库的地址

    git remote remove origin        删除地址别名 origin

    git remote add origin https://github.com/RyenToretto/taobao.copy.git        创建一个别名 origin 代替 长串的地址

    git push -u origin master        托管上线到 GitHub

    git pull origin master        拉取 GitHub 上的代码到本地

    ssh-keygen -t rsa -C '18273727925@qq.com'        生成密钥

    GitHub

    git 项目托管网站

    冲突: 同一文件的同一位置,内容出现冲突

    处理:(pull 会把远端内容拉取,可能进行自动合并的操作,产生冲突)

    第一种方式:

    git pull -u origin master        拉取 GitHub 的文件内容到本地,出现冲突

    处理冲突文件

    git add .

    git commit -m '处理 xxx 的冲突'

    git push -u origin master

    第二种方式:

    git fetch origin master:tmp        将 GitHub 的文件内容拉取到 tmp 分支上

    git checkout tmp        切换到 tmp 分支

    git diff tmp master        显示 tmp 分支 与 master 分支的 文件内容差异

    • pull 和 fetch 的区别:

    git pull origin master

    将远程仓库的 master 分支上代码版本 复制/合并 到本地 master 分支上

    git fetch origin master:dev

    新建了一个 dev 分支,将远程仓库的 master 分支上代码版本复制到 dev 分支上
    就一定不会产生冲突
    git diff master dev 对比两分支内容,观察会不会产生冲突
    如果会,先解决,在合并分支。如果不会,就直接合并分支

     

    忽略文件(.gitignore 这个配置文件本身 是需要被提交 给 git 进行管理的)

    直接在项目文件夹中创建 .gitignore 并设置忽略文件

    .idea

    node_modules

    WebStorm 处理冲突

    add

    commit

    pull        ----> ok 等待交互后,发现冲突,点 merge         

    ----> apply

    push        最终推送成功

    Fork & Pull Request & Create Pull Request ----> Merge Request

     

    --------小尾巴 ________一个人欣赏-最后一朵颜色的消逝-忠诚于我的是·一颗叫做野的心.决不受人奴役.怒火中生的那一刻·终将结束...
  • 相关阅读:
    【看完想不会都难的系列教程】- (3) JQuery+JQueryUI+Jsplumb 实现拖拽模块,流程图风格
    数据库~大叔通过脚本生成poco实体
    Git~分支真的很轻
    jenkins~管道Pipeline里使用公用类库
    docker~run起来之后执行多条命令
    jenkins~管道Pipeline的使用,再见jenkinsUI
    通过数组初始化链表的两种方法:指向指针的引用node *&tail和指向指针的指针(二维指针)node **tail
    NYOJ 16 矩形嵌套(动态规划)
    SPOJ 416
    sqlserver,执行生成脚本时“引发类型为“System.OutOfMemoryException”的异常”(已解决)
  • 原文地址:https://www.cnblogs.com/tianxiaxuange/p/10212468.html
Copyright © 2020-2023  润新知